Mi a különbség a listák és halmazok között a Pythonban?


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 készlethez való hozzáadáshoz használja a add elemet. A eltávolítás módszer eltávolít egy adott elemet elem egy halmazból; pop eltávolít egy tetszőleges elemet.

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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük