A lista (angolul: list) egy olyan adatszerkezet, amelybe több értéket tárolhatsz egymás után, egyetlen változóban. Gondolj rá úgy, mint egy bevásárlólistára – minden tételnek van sorszáma, és bármikor módosíthatod.
# Létrehozás szögletes zárójelekkel bevásárlólista = ["alma", "tej", "kenyér", "tojás"] # Vegyes típusok is mehetnek bele! vegyes = [42, "hello", 3.14, True] # Üres lista üres_lista = [] print(bevásárlólista) # ['alma', 'tej', 'kenyér', 'tojás']
Fontos: A lista módosítható (mutable) – utólag bármikor hozzáadhatsz, elvehetsz, vagy megváltozathatsz elemeket. Ez különbözteti meg a tuple-től.
Minden elemnek van egy indexe (sorszáma), ami 0-tól kezdődik! Negatív indexszel a lista végéről számolhatsz.
lista = ["alma", "tej", "kenyér", "tojás"] print(lista[0]) # "alma" – az első elem print(lista[2]) # "kenyér" – a harmadik elem print(lista[-1]) # "tojás" – az utolsó elem print(lista[-2]) # "kenyér" – az utolsó előtti # Módosítás indexxel lista[1] = "joghurt" print(lista) # ['alma', 'joghurt', 'kenyér', 'tojás']
A szeletelés (slicing) segítségével egyszerre több elemet is kinyerhetsz a listából.
A szintaxis: lista[start:stop:lépés]
számok = [10, 20, 30, 40, 50, 60] print(számok[1:4]) # [20, 30, 40] – 1-től 4 előttig print(számok[:3]) # [10, 20, 30] – az első 3 elem print(számok[3:]) # [40, 50, 60] – 3. indextől végig print(számok[::2]) # [10, 30, 50] – minden 2. elem print(számok[::-1]) # [60, 50, 40, 30, 20, 10] – fordított sorrend
osztaly = ["Anna", "Béla", "Csaba"] osztaly.append("Dóra") # ['Anna', 'Béla', 'Csaba', 'Dóra'] osztaly.insert(1, "Eszter") # ['Anna', 'Eszter', 'Béla', 'Csaba', 'Dóra'] osztaly.remove("Béla") # ['Anna', 'Eszter', 'Csaba', 'Dóra'] kilépett = osztaly.pop() # kilépett = "Dóra" osztaly.sort() # ['Anna', 'Csaba', 'Eszter'] print(len(osztaly)) # 3
jegyek = [5, 4, 3, 5, 4] # Egyszerű bejárás for jegy in jegyek: print(f"Kaptál egy " + str(jegy) + "-est!") # Indexxel együtt – enumerate() for i, jegy in enumerate(jegyek): print(f"{i+1}. dolgozat: {jegy}") # Átlag számítása átlag = sum(jegyek) / len(jegyek) print(f"Átlag: {átlag}") # Átlag: 4.2
A lista-értelmező egy tömör, egysoris módszer arra, hogy egy listából egy másikat hozzál létre. Python egyik leglátványosabb eszköze!
# Hagyományos módszer – négyzetszámok listája négyzetek = [] for x in range(1, 6): négyzetek.append(x ** 2) # Ugyanez lista-értelmezővel (SOKKAL rövidebb!) négyzetek = [x ** 2 for x in range(1, 6)] print(négyzetek) # [1, 4, 9, 16, 25] # Feltétellel – csak a páros számok páros = [x for x in range(1, 11) if x % 2 == 0] print(páros) # [2, 4, 6, 8, 10] # Szavak nagybetűsítése városok = ["budapest", "pécs", "győr"] nagy = [v.upper() for v in városok] print(nagy) # ['BUDAPEST', 'PÉCS', 'GYŐR']
lista = [10, 20, 30, 40]; print(lista[-2])[x**2 for x in range(1,4)]