[[oktatas:programozás:python|< Python]] ====== Lista ====== * **Szerző:** Sallai András * Copyright (c) 2020, Sallai András * Szerkesztve: 2020, 2022 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Lista létrehozása ===== Üres lista létrehozása: lista = [] Lista kezdőértékkel: lista = ['alma', 'körte', 'barack', 'szilva'] lista = [32, 27, 12, 43, 85] ===== Metódusok ===== A listák rendelkeznek néhány metódussal: * list.append(x) * Hozzáadás a listához * list.extend(iterable) * Az iterable minden tagját hozzáfűzi a listához * list.insert(i, x) * Egy elem beszúrása adott pozícióba. * list.remove(x) * Az elsőként talál, x-el egyező elem törlése * list.pop([i]) * Vesszük az i-dik elemet, majd töröljük. * list.clear() * Az összes elem törlése a listából. * list.index(x[,start[,end]]) * Adott elem indexét adja vissza. * A start és end paraméterekkel, megadható az vizsgált rész. * list.count(x) * Megszámolja hány ilyen elem van. * list.sort(key=None, reverse=False) * Rendezés. * list.reverse() * Az elemek helyének megfordítása a listában. * list.copy() * Visszatér a lista másolatával. list.sort(key=None, reverse=False) print(list) list.reverse() print(list) A rendezést nem adhatjuk át paraméterként. Ez nem működik: print(list.sort()). Előbb rendezzük a listát, majd kiíratjuk: lista = ['szilva', 'körte', 'barack', 'alma'] lista.sort() print(lista) ===== Osztály listában ===== Gyakran állományból vagy adatbázisból olvasunk adatokat, amelyeket célszerű osztályban tárolni. Ha több ilyen sorunk, rekordunk van, azokat célszerű listában tárolni. Üres listához, fűzzük a névtelen objektumokat. class Employee: def __init__(self, name, city): self.name = name self.city = city empList = [] empList.append(Employee('Nagy János', 'Szolnok')) empList.append(Employee('Baros Gábor', 'Szeged')) empList.append(Employee('Teri Géza', 'Miskolc')) for emp in empList: print(emp.name, emp.city, "településen lakik") A lista kezdő elemeként adjuk meg a névtelen objektumokat: class Employee: def __init__(self, name, city): self.name = name self.city = city empList = [ Employee("Árpád", "Szeged"), Employee("Tamás", "Szolnok"), Employee("Péter", "Pécs") ] for emp in empList: print(emp.name, emp.city, "településen él") ===== A List osztály használata ===== A List osztály használata megkönnyíti a list használatát. A fejlesztői környezetek ha azt támogatják, a ciklusban, ahol a dolgozo objektum egy tagjára hivatkozunk, a tagot automatikusan felajánlja. Importálni kell a List osztályt, és ezt használni: from typing import List empList: List[Employee] = [] A teljes kód: from typing import List class Employee: def __init__(self, name: str, city: str): self.name = name self.city = city empList: List[Employee] = [] empList.append(Employee("Nagy János", "Szolnok")) empList.append(Employee("Baros Gábor", "Szeged")) empList.append(Employee("Teri Géza", "Miskolc")) for emp in empList: print("Név: " + emp.name + ", Település: " + emp.city) ===== Forrás ===== * https://docs.python.org/3/tutorial/datastructures.html (2020)