Подтвердить что ты не робот

В чем разница между наборами и списками в Python?

Единственная разница между наборами и списками в Python заключается в том, что вы можете использовать разностные, объединенные, разностные, симметричные разностные функции для сравнения двух наборов? Почему эти функции не могут применяться к спискам? В каких ситуациях настройки более полезны, чем списки?

4b9b3361

Ответ 1

Там огромная разница.

  • Наборы не могут содержать дубликаты
  • Установки неупорядочены
  • Чтобы найти элемент в наборе, используется хэш-поиск (поэтому набор неупорядочен). Это делает оператор __contains__ (in) намного более эффективным для наборов, чем списки.
  • Наборы могут содержать только хешируемые элементы (см. # 3). Если вы попытаетесь: set(([1],[2])), вы получите TypeError.

В практических приложениях списки очень хороши для сортировки и упорядочения, в то время как наборы хороши для использования, когда вы не хотите дубликатов и не заботитесь о порядке.

Также обратите внимание, что если вы не заботитесь о заказе и т.д., вы можете использовать

new_set = myset.intersection(mylist)

чтобы получить пересечение между a set и a list.

Ответ 2

sets - Неупорядоченные коллекции уникальных элементов

lists - упорядоченные коллекции элементов

sets позволяет выполнять операции, такие как intersection, union, difference и symmetric difference, т.е. операции математической теории множеств. Наборы не позволяют индексировать и реализуются в хэш-таблицах.

lists представляют собой массивы переменной длины, а не Lisp -строчные связанные списки. В списках к элементам обращаются индексы.

Ответ 3

Set представляет собой набор различных элементов. В python набор в основном используется по двум причинам (Книга: Data Science от Scratch, Joel Gruce):

  • Для более быстрой работы: в - очень быстрая операция над наборами. Если у нас есть большая коллекция элементов, и если мы хотим выполнить тест на членство, в этом случае целесообразно использовать set вместо списка.

  • Найти отдельные элементы в коллекциях. Программисты используют наборы гораздо реже, чем дикты и списки.

Ответ 4

Еще несколько отличий:

  1. Список может быть двумерным, тогда как набор не может.
  2. Поскольку список упорядочен (т.е. имеет серийный номер), список выполняется сравнительно медленно, тогда как наборы выполняются быстро.
  3. Список в Python похож на массив Java или C.
  4. Печать набора почти всегда обеспечивает различную последовательность вывода.
  5. Set использует hash function для поиска элемента, тогда как list является массивом. Следовательно, поиск элемента в Set быстрее, чем в list.

Ответ 5

Набор Python:

Set - неупорядоченный набор уникальных элементов. Набор определяется значениями, разделенными запятой внутри фигурных скобок {}. Элементы в наборе не упорядочены.

Set - неупорядоченный сбор, индексирование не имеет смысла. Следовательно, оператор slicing [] не работает.

>>> a = {1,2,2,3,3,3}
>>> a
set([1, 2, 3])
>>> a[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing

Список Python:

Список представляет собой упорядоченную последовательность элементов. Это один из наиболее часто используемых типов данных в Python и очень гибкий. Все элементы в списке не обязательно должны быть одного типа.

Объявление списка довольно прямолинейно. Элементы, разделенные запятыми, заключены в скобки [].

>>> a = [1, 2.2, 'python']

Мы можем использовать оператор slicing [] для извлечения элемента или диапазона элементов из списка. Индекс начинает форму 0 в Python.

Списки являются изменяемыми, то есть значение элементов списка может быть изменено.

Ссылка

Ответ 6

Задавать

Набор представляет собой сбор, который является неупорядоченным и неиндексированным, и не позволяет дублировать. В Python наборы записываются с фигурными скобками.

# example set
newset = {"one", "two", "three"}
  • Вы не можете получить доступ к элементам в наборе, указав индекс
  • Наборы изменяемы
  • Они полезны для проверки дубликатов

Список

Список представляет собой коллекцию, которая упорядочена и изменена. В списках Python записываются квадратные скобки.

# example list
newlist =["one", "two", "three"]
  • Вы получаете доступ к элементам списка, ссылаясь на номер индекса
  • Списки являются изменяемыми.