Docy

Összetett adatszerkezetek

Estimated reading: 9 minutes 0 views
Összetett adatszerkezet

Részletesebb leírás az adatszerkezetekről

Adatszerkezetekhez

Tagolás

				
					l = [1, 'alma', 7.5, True, 'körte', 6]
print(l)
print(*l)
print(*l, sep=' - ')
				
			
				
					[1, 'alma', 7.5, True, 'körte', 6]
1 alma 7.5 True körte 6
1 - alma - 7.5 - True - körte - 6
				
			

Lista adatszerkezetet hoz létre, amelynek különböző típusú elemeket adunk hozzá, majd a listát kiírjuk a képernyőre.

A print(l) parancs kiírja a teljes listát a képernyőre, a benne lévő összes elemmel. Az eredmény a következő lenne: [1, ‘alma’, 7.5, True, ‘körte’, 6].

A print(*l) parancs használja a * operátort, amely szétszedi a lista elemeit, és azokat külön-külön adja át a print() függvénynek, ami aztán kiírja azokat a képernyőre. Az eredmény így a következő lenne: 1 alma 7.5 True körte 6. Megjegyzendő, hogy az első és utolsó elem között nincs szóköz, mivel az első elem és az első szóköz között nincs vessző.

A print(*l, sep=’ – ‘) parancs szintén használja a * operátort, hogy szétszedje a lista elemeit, majd azokat a ‘-‘ karakterrel elválasztva adja át a print() függvénynek. Az eredmény így a következő lenne: 1 – alma – 7.5 – True – körte – 6. A sep argumentum használatával beállítjuk, hogy milyen karaktert használjon elválasztónak az elemek között, amely alapértelmezetten a szóköz karakter.

				
					l = [1, 'alma', 7.5, True, 'körte', 6]  # egy lista létrehozása

print(l[1])  # a lista második elemét írja ki
print(l[-2])  # a lista utolsó előtti elemét írja ki
print(l[1:4])  # a lista második, harmadik és negyedik elemét írja ki
print(l[-3:-1])  # a lista utolsó előtti és utolsó elemét írja ki
print(l[:2])  # az első két elemet írja ki a listából
print(l[3:])  # a negyedik és az utána következő összes elemet írja ki a listából
print(l[1:5:2])  # a lista második, negyedik és hatodik elemét írja ki
print(len(l))  # a lista elemeinek a számát írja ki
print(type(l))  # a lista típusát írja ki
				
			
				
					alma
körte
['alma', 7.5, True]
[True, 'körte']
[1, 'alma']
[True, 'körte', 6]
['alma', True]
6
<class 'list'>
				
			
				
					l = [1, 'alma', 7.5, True, 'körte', 6]  # egy lista létrehozása

l[4] = 'barack' #lista elemének értékének megváltoztatása
print(l)
l.append(123) #elem hozzáadás a listához
print(l)
l.extend(['A', 32]) #kibővíti a listát
print(l)
				
			
				
					[1, 'alma', 7.5, True, 'barack', 6]
[1, 'alma', 7.5, True, 'barack', 6, 123]
[1, 'alma', 7.5, True, 'barack', 6, 123, 'A', 32]
				
			
				
					l.insert(3, 99) #3.helyre beszúrja az adatot
print(l)
				
			
				
					[1, 'alma', 7.5, 99, True, 'barack', 6, 123, 'A', 32]

				
			
				
					l.remove(123) #eltávolítja a 123 adatot
print(l)
				
			
				
					[1, 'alma', 7.5, 99, True, 'barack', 6, 'A', 32]
				
			
				
					print(l.pop(1)) # kiírja majd eltávolítja az elemet
				
			
				
					alma
				
			

Beépített metódusok

Az alábbi kód a list típusú változók néhány beépített metódusát mutatja be:

				
					s = [56, 32, 865, 1, 67, 99, 43, 23, 6]  # egy lista létrehozása

s.reverse()  # megfordítja a lista sorrendjét
print(s)  # kiírja a megfordított listát

s.sort()  # rendezni kezdi a listát növekvő sorrendbe
print(s)  # kiírja a rendezett listát

s.sort(reverse=True)  # megfordítja a lista sorrendjét, ezzel csökkenő sorrendbe rendezve
print(s)  # kiírja a megfordított és rendezett listát

del s[1]  # eltávolítja a lista második elemét
print(s)  # kiírja a lista módosított változatát

				
			
				
					[6, 23, 43, 99, 67, 1, 865, 32, 56]
[1, 6, 23, 32, 43, 56, 67, 99, 865]
[865, 99, 67, 56, 43, 32, 23, 6, 1]
[865, 67, 56, 43, 32, 23, 6, 1]
				
			

A reverse() metódus megfordítja a lista sorrendjét, míg a sort() metódus alapértelmezetten növekvő sorrendbe rendez. Ha meg akarjuk fordítani a sorrendet, a sort(reverse=True) parancsot használhatjuk.

Az del kulcsszó eltávolítja a megadott indexű elemet a listából. Itt a s[1], azaz a lista második eleme kerül eltávolításra.

Tuple változók

Az alábbi kód a tuple típusú változók használatát mutatja be:

				
					t = (1, 3, 54, 4, 8, 24)  # egy tuple létrehozása

print(t)  # kiírja a tuple elemeit
print(*t)  # kiírja a tuple elemeit szóközzel elválasztva
print(type(t))  # kiírja a változó típusát
				
			
				
					(1, 3, 54, 4, 8, 24)
1 3 54 4 8 24
<class 'tuple'>
				
			

A tuple típusú változók hasonlóak a list típusú változókhoz, azonban azok nem módosíthatóak. Az elemek sorrendjét és értékét nem lehet megváltoztatni. A tuple-t zárójelbe írjuk, míg a list-t szögletes zárójelekbe.

A print(*t) parancs a tuple elemeit szóközzel elválasztva írja ki. A type(t) paranccsal pedig kiírjuk a változó típusát, amely itt tuple.

Set változók - 1. Példa

Az alábbi kód a set típusú változók használatát mutatja be:

				
					h = {10, 12, 32, 45, 'a'}  # egy set létrehozása

print(h)  # kiírja a set elemeit

be = int(input("Kérek egy számot: "))  # bekér egy számot

h.add(be)  # hozzáadja a set-hez a bekért számot
print(h)  # kiírja a set elemeit

print(len(h))  # kiírja a változó hosszát
print(type(h))  # kiírja a változó típusát
				
			
				
					{32, 'a', 10, 12, 45}
Kérek egy számot: 23
{32, 'a', 10, 12, 45, 23}
6
<class 'set'>

				
			

A set típusú változók olyan kollekciók, amelyekben az elemek egyszer fordulnak elő, és nincs megadott sorrendjük. A set-ek közötti műveletek (metszet, unió, stb.) nagyon hatékonyak, és hasznosak lehetnek több adathalmaz összehasonlításához.

A print(len(h)) parancs kiírja a változó hosszát, vagyis a set-ben lévő elemek számát. A type(h) paranccsal pedig kiírjuk a változó típusát, amely itt set. A h.add(be) parancs pedig hozzáadja a bekért értéket a set-hez.

Set változók - 2. Példa

				
					h1 = set('almafa')
h2 = set('jonatán')
print(*h1) # látszik hogy minden karakterből csak 1 lehet benne
print(*h2)
print(h1-h2) # csak az a. Ami a közös illetve a másik halmaz értéke nem látszik
print(h1 | h2) #két halamz uniója
print( h1 & h2) #két halmaz metszete
print(h1 ^ h2) # Minden benne van, kivéve ami mind a 2 halmazban
print('m' in h1) #Vizsgálja hogy benne van-e az m érték)
				
			
				
					a l f m
j o a t n á
{'l', 'f', 'm'}
{'j', 'o', 'm', 'a', 'l', 'á', 't', 'n', 'f'}
{'a'}
{'o', 'l', 't', 'á', 'f', 'j', 'm', 'n'}
True
				
			

Az előző kódblokk egy set (halmaz) típusú változó létrehozásával, kezelésével foglalkozik. A set egy olyan adatszerkezet, amelyben az elemek egyedi (nem ismétlődő) és rendezetlen sorrendben szerepelnek. A set-et a kapcsos zárójelek között adjuk meg.

A kódblokk az „almafa” és „jonatán” stringekből halmazokat hoz létre a set() függvény segítségével. A * operátorral kiírjuk a halmazok elemeit.

Ezután kiírjuk a h1 halmaz és a h2 halmaz különbségét (h1-h2), amely csak az „a” elemet tartalmazza, mivel az a csak az első halmazban szerepel.

A | operátorral a h1 halmaz és a h2 halmaz unióját kapjuk meg, vagyis az összes elemet, amelyek bármelyik halmazban szerepelnek.

Az & operátorral a két halmaz metszetét kapjuk meg, vagyis azokat az elemeket, amelyek mindkét halmazban szerepelnek.

A ^ operátorral a szimmetrikus differenciát kapjuk meg, amely azokat az elemeket tartalmazza, amelyek az egyik halmazban, de nem a másikban, vagyis az összes olyan elemet, amely csak az egyik halmazban szerepel.

Végül a ‘m’ karakternek a h1 halmazban való előfordulását vizsgáljuk meg a ‘m’ in h1 kóddal, és a True eredményt kapjuk, mivel az „almafa” szóban van „m” karakter.

Szótár

				
					d = {'Neve':'Ede', 'Kora':20, 'Menzás':True, 'Jegyek':[1, 3, 5, 4, 3, 2] }
print(d)
print(d['Neve'])
print(len(d))
print(type(d))
				
			
				
					{'Neve': 'Ede', 'Kora': 20, 'Menzás': True, 'Jegyek': [1, 3, 5, 4, 3, 2]}
Ede
4
<class 'dict'>
				
			

Az adott kódrészlet egy szótár (dictionary) létrehozását mutatja be. A szótár egy kulcs-érték párokat tároló adatszerkezet, ahol a kulcsok egyediek és nem lehetnek megismétlődők. Az értékek bármilyen típusúak lehetnek.

A kódrészletben az ‘d’ nevű szótár négy kulcs-érték párt tartalmaz. Az első kulcs ‘Neve’, az értéke ‘Ede’, a második kulcs ‘Kora’, az értéke 20, a harmadik kulcs ‘Menzás’, az értéke True, és a negyedik kulcs ‘Jegyek’, az értéke pedig egy lista [1, 3, 5, 4, 3, 2].

Az utána következő sorokban az adott szótár kulcsainak és értékeinek lekérdezése történik. Az ‘Neve’ kulcshoz tartozó érték ‘Ede’, a szótár hossza (azaz a benne tárolt kulcs-érték párok száma) 4, és a szótár típusa a ‘dict’.

String - Szöveg

				
					s = 'Az alma nem esik messze a Fájától'
print(s)
print(len(s)) #Hány karakterből áll
print(type(s))
print(s.startswith('Az')) #Megnézi hogy ezzel kezdődik-e
print(s.startswith('alma', 3, 10))
print(s.endswith('Fájától')) #Szerepel-e
print(s.count('al')) #Megszámolja mennyi ilyen van benne
print(s.index('al')) #Hanyadik karaktertől van
print(s.strip('A')) #Eltávolítja az "A" karaktert
sl = s.split(' ')
print(sl)  # itt kiíratjuk a sl változó értékét
				
			
				
					Az alma nem esik messze a Fájától
34
<class 'str'>
True
False
True
2
3
z alma nem esik messze a Fájától
['Az', 'alma', 'nem', 'esik', 'messze', 'a', 'Fájától']
				
			

Leave a Comment

Megosztom ezt a leírást
Tartalom