Hogyan alakíthatunk át egy listát készletté a Pythonban

Üzletember használ laptop számítógépet az irodában

A Pythonban egy listát halmazzá konvertálhat.

Kép jóváírása: Poike/iStock/GettyImages

A Python listái és halmazai egyaránt tartalmaznak elemcsoportokat, de vannak fontos különbségek a kettő között. A halmazok különösen hasznosak sokféle művelet végrehajtásához, mint például egyesítések és metszéspontok, míg a listák kevesebb matematikai művelet, de hasznosak bizonyos elemek kereséséhez – különösen duplikátumok esetén – és rendszerezéshez adat. Számos okból előfordulhat, hogy egy listát készletgé kell konvertálnia Pythonban, és van egy egyszerű funkció, amellyel ezt megteheti.

Python listák és készletek magyarázata

A Pythonban a lista és a halmaz közötti legfontosabb különbség az, hogy a lista duplikált elemeket tartalmazhat, míg a készlet csak egyedi elemeket tartalmaz. Például, ha van egy teszteredménylistája, amely a következőképpen van definiálva: „pontszámok=[14, 20, 13, 20, 15]”, a lista minden értéket elmond, de ha halmazzá alakítja, eltávolítja a duplikációt, és a következőt hagyja: {14, 20, 13, 15}.

A nap videója

Egy másik különbség az, hogy a listákhoz szögletes zárójeleket, míg a halmazokhoz a göndör zárójeleket használjuk. A dolgot kicsit bonyolítja, hogy a Python szótárban is használnak göndör zárójeleket, de ott minden elem magából az értékből és egy kettősponttal elválasztott "kulcsból" áll.

Fontos megjegyezni, hogy karakterláncokat, egész számokat, lebegőpontokat vagy más objektumokat használhatunk egy halmaz vagy lista részeként, és ezek keverhetők is ugyanabban a halmazban vagy listában. Tehát, ahogyan a Pythonban is rendelkezhet számkészlettel, úgy készíthetsz Python-karakterláncokat is.

Konvertálja a listát készletté

A lista Pythonban halmazzá konvertálásának folyamata egyszerű. Először is meg kell határoznia a listát oly módon, hogy az értelmes legyen a benne foglalt információk számára. Tegyük fel például, hogy névlistát szeretne definiálni, írhat names=['Lee', 'Mike', 'Jamie', 'Mike', 'Sarah'] vegye figyelembe a szögletes zárójeleket, a karakterláncok (a nevek) körüli idézőjeleket és az egyes bejegyzéseket elválasztó vesszőket.

A lista halmazzá alakításához használja a parancsot készlet(), ahol a konvertálni kívánt lista nevét a zárójelek közé teszed. Tehát ebben az esetben írhatsz készlet (nevek) a listában szereplő nevek halmazzá alakításához, és hozzárendelhet egy változót, például "egyedi neveket", és megjelenítheti az eredményt a nyomtatás (egyedi nevek), ami funkcionálisan egyenértékű nyomtatás (készlet (nevek)) de ügyesebb. Megerősíti, hogy ez helyesen történt, ha megjegyzi, hogy az eredmény göndör zárójeleket használ, és a "Mike" csak egyszer szerepel.

A teljes kód így néz ki:

names=['Lee', 'Mike','Jamie','Mike','Sarah']

egyedinevek=készlet (nevek)

print('Egyedi nevek: ', egyedi nevek)

Ebben az esetben az "Egyedi nevek:" hozzáadásra került a kimenethez prezentációs célból.

Python: Listakonverzió beállítása

Ugyanazt a konverziót az ellenkező irányba is futtathatja, és a folyamat alapvetően ugyanaz, csak a lista() parancsot egy halmazon, nem pedig fordítva. Ez azt jelenti, hogy először egy halmazra van szükség, amelyet egyszerűen meghatározhat úgy, hogy kiválaszt egy változót, például a "big_set", majd hozzáadja a tartalmat, vesszővel elválasztva és zárójelben. Írhatnál big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17} egész számok vagy bármely más érték halmazának meghatározásához.

Ha ezt listává szeretné konvertálni, definiáljon egy változót (mondjuk "big_list"), és használja a lista() parancsot, tehát írjon be valami hasonlót big_list=lista (nagy_készlet) és akkor nyomtatás (nagy_lista) az eredmény megjelenítéséhez. Tehát a teljes kód:

big_set={1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17}

big_list=lista (nagy_készlet)

nyomtatás (nagy_lista)

Ez az eset nem ad nevet a listának, így csak a listát adja vissza. Vegye figyelembe, hogy ha egy listát halmazzá alakít, majd vissza, akkor az első konverzió során elveszíti az ismétlődő értékeket, és azok nem térnek vissza.