Legjobb válasz
Van néhány jelentős különbség:
- Indexelés – egy lista egész számmal indexelhető (0-tól kezdődően); egy halmaz nem indexálható (a halmaz első elemének nincs fogalma, kivéve, ha iterálják).
- Szeletelés – egy lista felbontható ([a: b] jelöléssel); egy Python készletet nem lehet feldarabolni.
- Tartalom – a lista bármely adatelem keveréket tartalmazhat; egy készlet csak azokat az adatelemeket tartalmazhatja, amelyek áttörhetők (vagyis a hash () függvény értéket ad vissza).
- Ismétlődések – a lista tartalmazhat ismétlődő adatelemeket – nincs korlátozás az elemek hányszorosára egyenlő érték jelenik meg a listában; egy készlet nem tartalmazhat duplikátumokat.
- Sorrend – a listák sorrendbe kerülnek, ami azt jelenti, hogy megtartják a sorrendet, amelyet a program használ a lista segítségével; a halmazok nincsenek sorrendben – nincs fogalma az elsőnek, a másodiknak stb. – és a programozó semmilyen módon nem tudja szabályozni a sorrendet, amelyben a halmazokat iterálják, megjelenítik vagy más módon mutatják be. (A megjegyzés sorrendje nem azonos a rendezéssel – de a készleteket sem lehet rendezni).
- tagság – a listán a tagsági teszt (az in operátor) lineáris keresés az elsőtől a másikig. utolsó ; egy halmazon a tagsági teszt először a keresett érték hash-ján () alapul. A halmazban való keresés lényegesen hatékonyabb, mint egy hasonló méretű listához képest.
- Egyéb képességek – a listák nem viselkednek úgy, hogy új listákat hozzanak létre átfedések vagy listák közötti különbségek alapján; másrészt a halmazok számtalan művelettel (és módszerrel) rendelkeznek a halmazok közötti különbségek és túlalpok azonosítására.
Válasz
készletek adatstruktúrák, hasonlóak a listákhoz vagy szótárakhoz. Göndör zárójelek, vagy a set függvény segítségével jönnek létre. Bizonyos funkciókat megosztanak a listákkal, például a használatát a fájlban annak ellenőrzésére, hogy tartalmaznak-e egy adott elemet.
num\_set = {1, 2,3,4,5}
word\_set = set ([“spam”, “tojás”, “kolbász”])
print (3 in num\_set)
print (“spam” nem a word\_set fájlban)
>> Igaz
>>> Hamis
Megjegyzés: Üres halmaz létrehozásához u használd a set () parancsot, {} hozzon létre egy üres szótárat.
A halmazok több szempontból is különböznek a listáktól, de több listaműveletet is megosztanak, például len . Rendezetlenek, ami azt jelenti, hogy “nem indexelhetők. nem tartalmazhatnak ismétlődő elemeket. A” tárolásuk módja miatt “ gyorsabban annak ellenőrzésére, hogy egy elem a készlet része-e, nem pedig a lista része. A append
A halmazok matematikai műveletekkel kombinálhatók. A union operátor | két halmazt egyesít, hogy újat alkosson, amelyek bármelyikben elemeket tartalmaznak. A kereszteződés operátor és csak mindkét elemet kapja meg. A különbség operátor – elemeket kap az első szett, de a másodikban nem. A szimmetrikus különbség operátor ^ mindkét halmazban elemeket kap, de nem mindkettőt.
Mikor kell szótárt használni: – Amikor logikus társításra van szükséged egy kulcs között: érték pár. – Ha gyors keresésre van szüksége az adatokhoz, egy egyedi kulcs alapján. – Amikor az adatait folyamatosan módosítják. Ne feledje, hogy a szótárak változtathatóak. Mikor kell használni a többi típust: – Használja az listákat , ha olyan adatgyűjteménye van, amely nincs szüksége véletlenszerű hozzáférésre. Próbáljon listákat választani, ha szüksége van egy egyszerű, sokszor módosítható, gyakran módosított gyűjteményre. – Használjon egy készletet , ha egyediségre van szüksége az elemek számára. – Használjon sorokat , ha az adatai nem változhatnak.
Remélem, hogy ez segít Önnek.
Boldog kódolás.
Még egy utolsó dolog, ha ez tetszik neked, akkor szavazd meg “motiválni fogom.