Lista (list): egymás utáni adatok. Vannak 1 és több dimenziós tömbök, az indexek 0-tól indulnak. A Python a stringeket is listaként kezeli. A Pythonban a listára nem vonatkozik az a szigorú megkötés, hogy minden elem azonos típusú lehet, és több dimenzió esetén is lehetnek eltérő számú elemek.
- Létrehozás: lista = [1,’a’,[2,3]] de lehet for ciklussal is létrehozni:
paros_szamok = [i for i in range(1, 101) if i % 2 == 0] lista = [’+’ if a>=0 else ’-’ for a in szamok]
Üres lista létrehozása:lista = []
Lista másolása: ujlista = copy(lista)
- Elem hozzáadása:
lista.append(elem) egy elemet hozzáfűz a lista végéhez
lista.extend(elem) kibővíti a listát
- Elem törlése: lista.remove(elem)
- Lista métere (elemek száma): len(lista)
- Elemek elérése – listaelemekre hivatkozhatunk ilyen formákban:
lista[i] | lista i-1-edik eleme, kezdőérték 0. Negatív i esetén visszafelé számol, vagyis lista[-1] az utolsó elemet jelenti. |
lista[i:j] | a lista része, szelete i. indextől j-1. indexig, de a j-edik elemet már nem tartalmazza; i alapbeállítás szerinti értéke 0, j alapbeállítás szerinti értéke len(lista) |
lista[i:j:k] | a lista i-től j-ig vett szelete, k lépésközzel |
Például a lista = [‘a’, ‘b’, ‘papa’, ‘z’, ‘mama’] esetén a következők az értékek:
lista[1:3] | eredménye [‘b’, ‘papa’] |
lista[1:-1] | eredménye [‘b’, ‘papa’, ‘z’] |
lista[0:3] | eredménye [‘a’, ‘b’, ‘papa’] |
lista[:3] | eredménye [‘a’, ‘b’, ‘papa’] |
lista[3:] | eredménye [‘z’, ‘mama’], a harmadik indexűtől a végéig |
lista[:] | eredménye [‘a’, ‘b’, papa’, ‘z’, ‘mama’] |
- Stringlista összekapcsolt kiíratása: ’elválasztó’.join(lista)
Példa: ’, ’.join([str(n) for n in számlista]) egy számokból álló listából stringeket tartalmazó listát készít, és ezeknek az elemeit írja ki vessző és szóközzel elválasztva (a végére nem ír elválasztót).
- Fontosabb listakezelő függvények:
lista.count(elem) | megszámolja, hányszor fordul elő az adott elem a listában |
lista.index(érték) | az első, értékkel egyenlő elem indexe |
lista.sort(reverse=True|False, key=függvény) | rendezi a listát |
lista.clear() | minden elemet kitöröl a listából |
lista.remove(elem) | |
lista.insert(index,elem) | index pozícióra beszúrja elemet |
lista.pop(index) | az index pozícióról kitöröl egy elemet |
lista.reverse() | megfordítja a listát |
min(lista) | a lista legkisebb eleme |
max(lista) | a lista legnagyobb eleme |
sum(lista) | összeadja a számlista elemeit |
- Lista rendezése: sort(key=függvény, reverse=True)
Példák: számlista növekvőbe rendezése: lista.sort()
számlista csökkenőbe rendezése: lista.sort(reverse=True)
szöveglista hossz szerinti rendezése: lista.sort(key = len)
- Végiglépkedés: vagy elemek szerint, vagy index szerint:
for elem in lista:
print(elem)
for i1 in range(len(lista)):
print(lista[i1])
- Tartalmazás vizsgálat: Az in operátorral lehet eldönteni, hogy egy elem benne van-e egy listában, pl.
if betu in [’e’,’i’,’o’,’ö’,’ü’,’ó’,’ő’,’ú’,’é’,’á’,’í’]:
print(’a betű egy magánhangzó’)
else:
print(’a betű egy mássalhangzó’)
- Több dimenziós listák, tömbök: listák listája
Példa több dimenziós tömbre: szamok = [[1,3],[5,7],[9,11]]. Itt pl. szamok[2][0] értéke 9.
Például lista = [[’egy’,1],[’hét’,7,’törpe’]] Itt lista[1][1] értéke 7, lista[0][1] értéke 1
Elemek elérése: több dimenziós listán végig lehet így menni:
for i in range(len(a)):
for j in range(len(a[i])):
print(a[i][j], end=’ ‘)
print()
- Több dimenziós lista rendezése: több lehetőség van.
- sort(key=lambda elem: elem[1]) pl. a 2. elemek szerint rendezi növekvőbe
- sort(key=lambda elem: elem[0], reverse=True) az első elemek szerinti csökkenőbe rendezi
- sort(key=lambda e:(e[0],e[1]) a listát úgy rendezi, hogy az 1., azon belül a 2. elemek szerint növekvőbe
- sort(key=lambda e:(e[0],-e[1]) a listát úgy rendezi, hogy az 1. elemek szerint növekvőbe, azon belül a 2. elemek szerint csökkenőbe
- definiálhatunk egy rendező függvényt, pl. a következő minta rendezi a listát úgy, hogy az 1., majd a 2. szerint lesznek sorba rendezve.
def rendez(i):
return i[0],i[1]
lista.sort(key=rendez)
Csökkenőbe így lehet rendezni: lista.sort(key=rendez,reverse=True)
Halmaz (set): egy elem csak egyszer lehet benne, nem rendezett (nem lehet megmondani, melyik az első vagy utolsó elem és nem lehet indexszel hivatkozni egy-egy elemre) és az elemek nem változtathatók meg. Lehet viszont hozzárakni elemet, kiszedni belőle, tartalmazást vizsgálni, végiglépkedni az elemeken és a metszet és unió is megvalósítható beépített függvényekkel.
Ha egy listából halmazt csinálunk, akkor azok lesznek benne, amik előfordulnak a listában.
Pl. ha a lista = [1, 1, 2, 2, 3, 4, 5, 5, 5, 6, 9], akkor a halmaz=set(lista) eredménye {1, 2, 3, 4, 5, 6, 9}. Ilyenkor a 2 in halmaz eredménye True lesz.
- Új elem hozzáadása: lista.add(új elem)
- Egy elem törlése: lista.remove(törlendő_elem)
- Elemek elérése:
for elem in halmaz:
print(elem)
- Tartalmazás vizsgálat:
if 1 in (1, 2, 3):
print(’Benne van!’)