Jaký je rozdíl mezi seznamy a sadami v Pythonu?


Nejlepší odpověď

Existují některé významné rozdíly:

  • Indexování – seznam může být indexován celým číslem (od 0); sadu nelze indexovat (neexistuje žádný koncept první položky v sadě, kromě případů, kdy je iterována).
  • Řezání – seznam lze rozdělit (pomocí notace [a: b]); sadu Python nelze rozdělit na plátky.
  • Obsah – seznam může obsahovat libovolnou směs datových položek; sada může obsahovat pouze ty datové položky, které jsou hashovatelné (tj. funkce hash () vrací hodnotu).
  • Duplikáty – seznam může obsahovat duplicitní datové položky – není omezen počet opakování položek stejná hodnota se objeví v seznamu; sada nemůže obsahovat duplikáty.
  • Řazení – seznamy jsou řazeny, což znamená, že si zachovají pořadí podle určení programu pomocí seznamu; sady nejsou řazeny – neexistuje koncept první, druhé atd. – a neexistuje žádný způsob, jak může programátor ovládat pořadí, ve kterém je sada iterována, zobrazena nebo jinak prezentována. (Pořadí poznámek není totéž jako třídění – ale ani sady nelze třídit.)
  • členství – test členství (operátor „in“) v seznamu je lineární vyhledávání od prvního do poslední; test členství v sadě je založen nejprve na hash () hledané hodnoty. Hledání sady je podstatně efektivnější ve srovnání se seznamem podobné velikosti.
  • Další možnosti – seznamy nemají chování pro vytváření nových seznamů na základě překrývání nebo rozdílů mezi seznamy; sady na druhé straně mají nesčetné množství operací (a metod) pro identifikaci rozdílů a přesahů mezi sadami.

Odpověď

Sady jsou datové struktury podobné seznamům nebo slovníkům. Jsou vytvořeny pomocí složených závorek nebo funkce set . Sdílejí některé funkce se seznamy, například použití v ke kontrole, zda obsahují konkrétní položku.

num\_set = {1, 2,3,4,5}

word\_set = set ([„spam“, „vejce“, „klobása“])

tisk (3 in num\_set)

tisk („spam“ ne v word\_set)

>> True

>>> False

Poznámka: Chcete-li vytvořit prázdnou sadu, musíte použít set (), as {} vytvořit prázdný slovník.

Sady se od seznamů liší několika způsoby, ale sdílejí několik operací se seznamy, například len . Jsou neuspořádané, což znamená, že je nelze indexovat. nemohou obsahovat duplicitní prvky. Kvůli způsobu, jakým jsou znovu uloženy, je rychlejší a zkontrolovat, zda je položka součástí sady, nikoli součástí seznamu. Místo použití připojit pro přidání do sady použijte add . Metoda remove odstraní konkrétní prvek ze sady; pop odstraní libovolný prvek.

Sady lze kombinovat pomocí matematických operací. operátor sjednocení | kombinuje dvě sady a vytvoří novou obsahující položky v obou. operátor křižovatky & získá položky pouze v obou. rozdíl operátor dostává položky dovnitř první sada, ale ne ve druhé. Operátor symetrický rozdíl ^ získá položky v jedné sadě, ale ne v obou.

Kdy použít slovník: – Když potřebujete logické přidružení mezi klíčem: hodnotou pár. – Když potřebujete rychle vyhledat svá data na základě vlastního klíče. – Když jsou vaše data neustále upravována. Pamatujte, že slovníky jsou proměnlivé. Kdy použít jiné typy: – Použijte seznamy , pokud máte sbírku dat, která nepotřebuje náhodný přístup. Pokuste se vybrat seznamy, když potřebujete jednoduchou iterovatelnou kolekci, která je často upravována. – Pokud potřebujete pro prvky jedinečnost, použijte sadu . – Použijte n-tice , když se vaše data nemohou změnit.

Doufám, že vám to pomůže.

Happy Coding.

Poslední věc, pokud se vám líbí, pak ji hlasujte, „motivuji mě.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *