标签:for values print 数据类型 转换 move 局限 成员 span
集合
1、定义
在{}内用,分隔开多个元素,必须满足以下三个条件
# 1、集合内的元素必须为不可变类型 # 2、集合内元素无序 # 3、集合内元素没有重复
验证上述三个条件
s = {} # 空的花括号默认定义的是空字典
s = {1,2,‘a‘,(1,4)} # 底层是调用了set()功能
print(s)
# 定义空集合
s1 = set()
# 1、集合内的元素必须为不可变类型
# s2 = {[1,2,3],1} # 不可哈希是可变类型
# print(s2)
# 2、集合内元素无序
s = {1,2,‘a‘,(1,4)} # 底层是调用了set()功能
print(s)
# 3、集合内元素没有重复,可以进行去重
s = {1,1,1,1,1,2,2}
print(s)
2、类型转换:相当于底层调用for循环,取出每一个值放在集合中
# 对字符串进行转换,会自动将字符串中重复的去掉 s = set(‘hellollllop‘) print(s) # 对列表进行转换 s = set([1,2,3,4,5,6]) # s = set([1,2,3,4,5,6,[1,2]]) 这个就是错的 # print(s) # 对字典进行转换 s = set({‘k1‘:12,‘k2‘:13}.items()) print(s) s = set({‘k1‘:12,‘k2‘:13}) print(s) s = set({‘k1‘:12,‘k2‘:13}.values()) print(s)
3、内置方法
3.1 关系运算
a = {1, 2, 3}
b = {2, 3, 4}
# 交集:求共同的值,两种方法
res = a & b
res1 = a.intersection(b)
print(res)
print(res1)
# 并集:两者所有的值,重复的去掉
res = a | b
res1 = a.union(b)
print(res)
print(res1)
# 差集:取a独有的值,a为被减
res = a - b
res1 = a.difference(b)
print(res)
print(res1)
# 对称差集:两个独有的值
res = a ^ b
res1.symmetric_difference(b)
print(res)
print(res1)
# 父子集:包含的关系,当两个集合相等时,互为父子集
s4 = {1,2,3}
s5 = {1,2}
res = s4.issubset(s5)
res1 = s4.issuperset(s5)
print(s4 > s5)
3.2 去重操作
# 局限性 # 只能针对不可变类型去重 print(set([1,1,1,1,2,3])) # 无法保证原来的顺序 # 针对可变类型去重,需要自己写代码 l=[ {‘name‘:‘lili‘,‘age‘:18,‘sex‘:‘male‘}, {‘name‘:‘jack‘,‘age‘:73,‘sex‘:‘male‘}, {‘name‘:‘tom‘,‘age‘:20,‘sex‘:‘female‘}, {‘name‘:‘lili‘,‘age‘:18,‘sex‘:‘male‘}, {‘name‘:‘lili‘,‘age‘:18,‘sex‘:‘male‘}, ] new_l = [] for info in l: if info not in new_l: new_l.append(info) l = new_l print(new_l) print(l)
3.3 len() 集合的长度
3.4 成员运算in 和 not in
3.5 for循环进行遍历
4、其他内置方法
4、1 删除
s = {1,2,3,4,5}
# 用来删除元素的,指定元素不存在不会报错,do nothing
s.discard(2)
print(s)
# 用来删除元素的,指定元素不存在报错
s.remove(2)
# 随机删除
res = s.pop()
4、2更新列表
# 更新列表 s.update({3,6,9,2}) # 求差集,并把差集的值赋给该集合 s.difference_update({3,4,5}) # s = s.difference({3,4,5})
4.3 增加值 add
s.add(4)
4.4 判断两个集合是否完全独立,没有相同部分 isdisjoint()
print(s.isdisjoint({1,2,3}))
标签:for values print 数据类型 转换 move 局限 成员 span
原文地址:https://www.cnblogs.com/Kathrine/p/12473873.html