集合set

  1. 与list基本相同
  2. 元素不重复
  3. 不支持下标索引访问

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:1

clear

集合名.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