Python中的集合和列表之间的唯一区别是,您可以使用并集,交叉,差异,对称差异函数来比较两个集合吗?为什么这些功能不能简单地应用于列表?什么情况下集合比列表更有用?
答案 0 :(得分:70)
有很大的不同。
__contains__
(in
运算符)对于集合而言比列表更有效。set(([1],[2]))
,您将获得TypeError
。在实际应用中,列表非常适合排序和订购,而当您不需要重复且不关心订单时,套件很好用。
另请注意,如果您不关心订单等,可以使用
new_set = myset.intersection(mylist)
获取set
和list
之间的交集。
答案 1 :(得分:6)
sets
- 无序的独特元素集合
lists
- 有序的元素集合
sets
允许您执行intersection
,union
,difference
和symmetric difference
等操作,即数学集合论的操作。集不允许索引,并在哈希表上实现。
lists
实际上是可变长度数组,而不是Lisp样式的链表。在列表中,元素由索引访问。
答案 2 :(得分:3)
Set表示不同元素的集合。在python中,集合主要用于两个原因(书:Scratch的数据科学,Joel Gruce):
为了加快操作速度: 是对集合的快速操作。如果我们有大量元素,并且如果我们希望执行成员资格测试,那么在这种情况下使用set而不是列表是合适的。
查找集合中的不同项目。程序员使用集合的频率远低于词典和列表。
答案 3 :(得分:3)
设置
集合是无序且无索引的集合,并且不允许重复。在Python中,集合用大括号括起来。
# example set
newset = {"one", "two", "three"}
列表
列表是有序且可更改的集合。在Python中,列表用方括号括起来。
# example list
newlist =["one", "two", "three"]
答案 4 :(得分:2)
还有一些不同之处:
hash function
查找元素,而list是数组。因此,Set
中的查找元素比list
中更快。答案 5 :(得分:1)
集合与列表之间的差异 在这里,我们将讨论Python中的Set和List之间的区别。
列表 1)列出保存元素的插入顺序。 2)列出支持索引。 3)我们可以更改列表中存储的元素的值。 4)列表可以存储重复值。 5)列表用方括号声明。 6)例如:A = [1、2、3、4、5、1、2、3]
设置 1)集不按插入顺序保存元素。 2)集不支持索引。 3)我们不能更改存储在集合中的元素的值。 4)集不能存储重复值。 5)集用大括号声明。 6)例如:A = {1,2,3,4,5}
在下面给出的链接上通过示例了解有关集合的更多信息 https://tutorialsimpact.com/python/sets-in-python
答案 6 :(得分:1)
实际上python中有四种收集数据类型:
列表是一个有序且可更改的集合。允许重复的成员。
元组是一个有序且不可更改的集合。允许重复的成员。
设置是一个无序且没有索引的集合。没有重复的成员。
词典是一个无序,可变且已编入索引的集合。没有重复的成员。
您可以通过引用列表项目的索引来访问该项目。但是,在设置中,您需要循环浏览设置项才能访问它。