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.
  1. sort(key=lambda elem: elem[1]) pl. a 2. elemek szerint rendezi növekvőbe
  2. sort(key=lambda elem: elem[0], reverse=True) az első elemek szerinti csökkenőbe rendezi
  3. 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
  4. 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
  5. 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!’)

News Reporter