Единственная разница между наборами и списками в Python заключается в том, что вы можете использовать разностные, объединенные, разностные, симметричные разностные функции для сравнения двух наборов? Почему эти функции не могут применяться к спискам? В каких ситуациях настройки более полезны, чем списки?
В чем разница между наборами и списками в Python?
Ответ 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
Еще несколько отличий:
- Список может быть двумерным, тогда как набор не может.
- Поскольку список упорядочен (т.е. имеет серийный номер), список выполняется сравнительно медленно, тогда как наборы выполняются быстро.
- Список в Python похож на массив Java или C.
- Печать набора почти всегда обеспечивает различную последовательность вывода.
- 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"]
- Вы получаете доступ к элементам списка, ссылаясь на номер индекса
- Списки являются изменяемыми.