Python中集合和列表之间的唯一区别是您可以使用并集、相交、差异、对称差异函数来比较两个集合吗?为什么这些函数不能简单地应用于列表?在什么情况下集合比列表更有用?
7 回答
有很大的不同。
- 集合不能包含重复项
- 集合是无序的
- 为了在集合中查找元素,使用哈希查找(这就是集合无序的原因)。这使得
__contains__
(in
operator) 对于集合比列表更有效。 - 集合只能包含可散列项(参见#3)。如果你尝试:
set(([1],[2]))
你会得到一个TypeError
.
在实际应用中,列表非常适合排序和排序,而当您不想重复并且不关心顺序时,集合很适合使用。
另请注意,如果您不关心订单等,您可以使用
new_set = myset.intersection(mylist)
得到 aset
和 a之间的交集list
。
放
集合是无序和无索引的集合,并且不允许重复。在 Python 中,集合是用大括号编写的。
# example set
newset = {"one", "two", "three"}
- 您不能通过引用索引来访问集合中的项目
- 集合是可变的
- 它们对于检查重复项很有用
列表
列表是有序且可变的集合。在 Python 中,列表是用方括号编写的。
# example list
newlist =["one", "two", "three"]
- 您通过引用索引号访问列表项
- 列表是可变的。
Set 表示不同元素的集合。在 python 中,集合主要用于两个原因(书籍:Data Science from Scratch,Joel Gruce):
为了更快的操作: in是一个非常快速的集合操作。如果我们有大量元素并且我们希望执行成员资格测试,那么在这种情况下使用集合而不是列表是合适的。
在集合中查找不同的项目。程序员使用集合的频率远低于字典和列表。
还有一些区别是:
- 列表可以是二维的,而集合不能。
- 由于列表是有序的(即有序列号),列表执行起来相对较慢,而集合执行得很快。
- python中的列表就像java或c的数组。
- 打印一组几乎总是提供不同的输出顺序。
- Set 用于
hash function
查找元素,而 list 是一个数组。因此查找元素 inSet
比 in 更快list
。
实际上python中有四种集合数据类型:
List是一个有序且可变的集合。允许重复成员。
元组是一个有序且不可更改的集合。允许重复成员。
Set是一个无序和无索引的集合。没有重复的成员。
字典是一个无序、可变和索引的集合。没有重复的成员。
您可以通过引用其索引来访问列表项。但是,在sets中,您需要遍历 set 项目才能访问它。
集合和列表之间的区别在这里,我们将讨论Python中集合和列表之间的区别。
列表 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上了解有关带有示例的集合的更多信息