Jaka jest różnica między listami a zestawami w Pythonie?


Najlepsza odpowiedź

Istnieją pewne istotne różnice:

  • Indeksowanie – lista może być indeksowana liczbą całkowitą (zaczynając od 0); zestaw nie może być indeksowany (nie ma pojęcia pierwszego elementu w zestawie, z wyjątkiem sytuacji, gdy jest iterowany).
  • Krojenie – listę można kroić (używając notacji [a: b]); zestaw Pythona nie może być podzielony na plasterki.
  • Zawartość – lista może zawierać dowolną kombinację elementów danych; zestaw może zawierać tylko te elementy danych, które można mieszać (tj. funkcja hash () zwraca wartość).
  • Duplikaty – lista może zawierać zduplikowane elementy danych – nie ma ograniczenia co do tego, ile razy elementy na liście pojawia się równa wartość; zestaw nie może zawierać duplikatów.
  • Kolejność – listy są uporządkowane, co oznacza, że ​​zachowują kolejność określoną przez program za pomocą listy; zestawy nie są uporządkowane – nie ma koncepcji pierwszego, drugiego itd. – i nie ma możliwości, aby programista mógł kontrolować kolejność, w jakiej zestaw jest iterowany, wyświetlany lub prezentowany w inny sposób. (Uwaga: kolejność to nie to samo, co sortowanie – ale zestawy też nie mogą być sortowane).
  • członkostwo – test członkostwa (operator „in”) na liście to wyszukiwanie liniowe od pierwszego do ostatni, ubiegły, zeszły ; test członkostwa na zbiorze jest oparty najpierw na hash () szukanej wartości. Przeszukiwanie zestawu jest znacznie wydajniejsze w porównaniu z listą o podobnym rozmiarze.
  • Inne możliwości – listy nie mają zachowań służących do tworzenia nowych list na podstawie nakładania się lub różnic między listami; zbiory z drugiej strony mają niezliczone operacje (i metody) służące do identyfikowania różnic i nakładek między zbiorami.

Odpowiedź

Zbiory to struktury danych podobne do list lub słowników. Tworzy się je za pomocą nawiasów klamrowych lub funkcji set . Dzielą pewne funkcje z listami, na przykład użycie w , aby sprawdzić, czy zawierają konkretny element.

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

word\_set = set ([„spam”, „jajka”, „kiełbasa”])

print (3 in num\_set)

print („spam” nie in word\_set)

>> Prawda

>>> Fałsz

Uwaga: Aby utworzyć pusty zestaw, musisz użyć set (), ponieważ {} utwórz pusty słownik.

Zestawy różnią się od list pod kilkoma względami, ale mają kilka wspólnych operacji na listach, takich jak len . Są nieuporządkowane, co oznacza, że ​​nie mogą być indeksowane. nie mogą zawierać zduplikowanych elementów. Ze względu na sposób, w jaki są przechowywane, jest to szybciej , aby sprawdzić, czy element jest częścią zestawu, a nie częścią listy. Zamiast używać dołącz aby dodać do zestawu, użyj dodaj . Metoda remove usuwa określony element z zestawu; pop usuwa dowolny element.

Zestawy można łączyć za pomocą operacji matematycznych. union operator | łączy dwa zestawy, tworząc nowy zawierający elementy w jednym z nich. operator przecięcia & pobiera elementy tylko w obu. różnica operator pobiera elementy w w pierwszym zestawie, ale nie w drugim. Operator różnicy symetrycznej ^ pobiera elementy w jednym z zestawów, ale nie w obu.

Kiedy używać słownika: – kiedy potrzebujesz logicznego powiązania między klucz: wartość para. – Gdy potrzebujesz szybkiego wyszukiwania danych w oparciu o niestandardowy klucz. – Gdy Twoje dane są stale modyfikowane. Pamiętaj, słowniki są zmienne. Kiedy używać innych typów: – użyj list , jeśli masz zbiór danych, nie potrzebuje dostępu swobodnego. Spróbuj wybrać listy, gdy potrzebujesz prostej, iterowalnej kolekcji, która jest często modyfikowana. – Użyj zestawu , jeśli potrzebujesz unikalności elementów. – Używaj krotek , gdy Twoje dane nie mogą się zmienić.

Mam nadzieję, że to Ci pomoże.

Miłego kodowania.

Ostatnia rzecz, jeśli ci się to podoba, a potem zagłosuj za nią „zmotywuje mnie.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *