Python 集合(Set)

集合

集合是无序、无索引的数据集。在Python中,集合用花括号包裹。

示例

创建集合:

thisset = {"自行车", "汽车", "高铁"}
print(thisset)

注意: 集合是无序的,因此项目将以随机顺序出现。

访问集合项目

不能通过索引来访问集合项,因为集合是无序的,这些项没有索引。

但是您可以使用for循环遍历集合项,使用in关键字查询集合中是否存在指定值。

示例

遍历集合,并打印值:

thisset = {"自行车", "汽车", "高铁"}

for x in thisset:
  print(x)

示例

检查“汽车”是否出现在集合中:

thisset = {"自行车", "汽车", "高铁"}

print("汽车" in thisset)

修改项目

集合一旦创建,就不能更改,但是可以添加新项。

添加项目

要向集合中添加一项,使用add()方法。

若要向集合添加多个项,使用update()方法。

示例

使用add()方法向集合添加一个项:

thisset = {"自行车", "汽车", "高铁"}

thisset.add("飞机")

print(thisset)

示例

使用update()方法向一个集合添加多个项:

thisset = {"自行车", "汽车", "高铁"}

thisset.update(["飞机", "轮船", "电动车"])

print(thisset)

获取集合长度

要确定一个集合有多少项,可以使用len()方法。

示例

获取集合长度:

thisset = {"自行车", "汽车", "高铁"}

print(len(thisset))

删除项目

要删除集合中的项,使用remove()discard()方法。

示例

使用remove()方法删除“汽车”:

thisset = {"自行车", "汽车", "高铁"}

thisset.remove("汽车")

print(thisset)

注意: 如果要删除的项不存在,remove()将引发错误。

示例

使用discard()方法删除“汽车”:

thisset = {"自行车", "汽车", "高铁"}

thisset.discard("汽车")

print(thisset)

注意: 如果要删除的项不存在,discard()不会引发错误。

您还可以使用pop()方法删除项,但该方法只删除最后一项。因为集合是无序的,所以您不知道删除了哪些项。

pop()方法的返回值是已删除的项。

示例

使用pop()方法删除最后一项:

thisset = {"自行车", "汽车", "高铁"}

x = thisset.pop()

print(x)

print(thisset)

注意: 集合是无序的,所以当使用pop()方法时,您将不知道删除了哪个项。

示例

clear()方法清空集合:

thisset = {"自行车", "汽车", "高铁"}

thisset.clear()

print(thisset)

示例

del关键字将删除整个集合,包括集合自身:

thisset = {"自行车", "汽车", "高铁"}

del thisset

print(thisset)

set()构造方法

也可以使用set()构造方法来创建集合。

示例

使用set()构造方法创建集合:

thisset = set(("自行车", "汽车", "高铁")) # 注意双圆括号
print(thisset)

集合方法

Python有一组可以在set上使用的内置方法。

方法 描述
add() 向集合中添加元素
clear() 从集合中移除所有元素
copy() 返回集合的副本
difference() 返回一个集合,该集合包含两个或多个集合之间的差别项目
difference_update() 移除此集合中与另一个集合相同的项
discard() 删除指定项
intersection() 返回一个集合,它是另外两个集合的交集
intersection_update() 移除此集合中其他集合中不存在的项
isdisjoint() 返回两个集合是否有交集
issubset() 返回另一个集合是否包含此集合
issuperset() 返回此集合是否包含另一个集合
pop() 从集合中移除一个元素
remove() 移除指定的元素
symmetric_difference() 返回具有两个集合的对称差异的集合
symmetric_difference_update() 插入来自这个集合和另一个集合的对称差异
union() 返回包含集合并集的集合
update() 使用此集合和其他集合的并集更新集合


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载