版权所有,未经许可,禁止转载
集合是无序、无索引的数据集。在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()构造方法创建集合:
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() | 使用此集合和其他集合的并集更新集合 |
原文:https://www.cnblogs.com/haibianren/p/11797506.html