集合set
- 与list基本相同
- 元素不重复
- 不支持下标索引访问
len
len(集合名)
# 定义集合字面量
{元素1, 元素2, 元素3, ...}
# 定义集合变量
变量名 = {元素1, 元素2, 元素3, ...}
# 定义空集合
变量名 = set()例:
set1 = {"nb", 666, True, "hello", 666, "nb"}
set2 = set()
print(set1) # output:{666, "nb", "hello"} 顺序不固定
print(set2) # output:set()add
集合名.add(元素)
向集合添加元素,如果不重复就能添加成功
set1 = {1, 3, 4}
set1.add(2)
print(set1) # output:{1, 2, 3, 4}remove
集合名.remove(元素)
删除集合里元素
set2 = {1, 2, 3, 4}
set2.remove(2)
print(set2) # output:{1, 3, 4}pop
集合名.pop()
随机返回一个集合中的元素
set3 = {1, 2, 3, 4}
element = set3.pop()
print(set3) # output:{2, 3, 4} 数是随机的
print(element) # output:1clear
集合名.clear()
清空集合
set3 = {1, 2, 3, 4}
print(set3.clear()) # output:set()difference
集合名.difference(集合2)
取两个集合的差集
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.difference(set2)
print(set3) # output:{2, 3} 集合2没有的集合1的元素集or:
集合名.difference_update(集合2)
在集合1内删除与集合2有交集的元素
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set1.difference_update(set2)
print(set1) # output:{2, 3}union
集合1.union(集合2)
两个集合结合
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.union(set2)
print(set3) # output:{1, 2, 3, 6, 5} 不一定有序 原有的set1,set2不变update
集合.update(参数)
更新集合(也算修改?)
d = {‘one’:1,’two’:2}
d.update({‘three’:3,’four’:4}) # 传一个字典
print(d)
d.update(five=5,six=6) # 传关键字
print(d)
d.update([(‘seven’,7),(‘eight’,8)]) # 传一个包含一个或多个元组的列表
print(d)
d.update(([‘nice’,9],[‘ten’,10])) # 传一个包含一个或多个列表的元组
print(d)
d.update(zip([‘eleven’,’twelve’],[11,12])) # 传一个zip()函数
print(d)
d.update(one=111,two=222) # 使用以上任意方法修改存在的键对应的值
print(d)
以上实例输出结果为:
{‘one’: 1, ‘four’: 4, ‘three’: 3, ‘two’: 2}
{‘one’: 1, ‘four’: 4, ‘three’: 3, ‘five’: 5, ‘two’: 2, ‘six’: 6}
{‘seven’: 7, ‘one’: 1, ‘four’: 4, ‘three’: 3, ‘five’: 5, ‘two’: 2, ‘six’: 6, ‘eight’: 8}
{‘seven’: 7, ‘one’: 1, ‘four’: 4, ‘three’: 3, ‘ten’: 10, ‘five’: 5, ‘nice’: 9, ‘two’: 2, ‘six’: 6, ‘eight’: 8}
{‘one’: 1, ‘four’: 4, ‘three’: 3, ‘twelve’: 12, ‘ten’: 10, ‘seven’: 7, ‘six’: 6, ‘eleven’: 11, ‘two’: 2, ‘nice’: 9, ‘five’: 5, ‘eight’: 8}
{‘one’: 111, ‘four’: 4, ‘three’: 3, ‘twelve’: 12, ‘ten’: 10, ‘seven’: 7, ‘six’: 6, ‘eleven’: 11, ‘two’: 222, ‘nice’: 9, ‘five’: 5, ‘eight’: 8}集合遍历
set1 = {1, 2, 3}
for ekement in set1:
print(element) # output:1 2 3