@
今日内容
集合(set)
具体内容
1.集合含义
一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
空集合:set()
-
基本格式
a = {1,2,3,4,5,6}
parame = {value01,value02,...} # 或者 set(value01,value02,...)
2.独有方法
-
"add()" ,添加:所添加值没有原值输出、新值增加
info = {"name",'li','age',18,'gender','男',} info.add(11) print(info) # {'li', 11, 18, '男', 'gender', 'age', 'name'}
-
"discard()" ,删除:所删除值没有原值输出、不会报错
info = {"name",'li','age',18,'gender','男',} info.discard(18) print(info) #{'男', 'li', 'name', 'age', 'gender'}键
"update()" ,批量添加。
info = {"name",'li','age',18,'gender','男',}
del info['gender']
print(info) # {'name': 'li', 'age': 18}
-
"intersection()" ,交集:生成新值。括号里可以列表、集合、元祖。
info = {"name",'li','age',18,'gender','男',} result = info.intersection({1,'li','男'}) print(result) # {'li', '男'}
-
"union()" ,并集:生成新值。括号里可以列表、集合、元祖。
info = {"name",'li','age',18,'gender','男',} result = info.union({1,'li','男'}) print(result) # {'gender', 1, '男', 18, 'name', 'age', 'li'}
-
"difference()" ,差集:生成新值。括号里可以列表、集合、元祖。
info = {"name",'li','age',18,'gender','男',} result = info.difference({1,'li','男'}) print(result) # {'name', 18, 'age', 'gender'}
-
"symmetric_difference()" ,对称差集:生成新值。括号里可以列表、集合、元祖。
info = {"name",'li','age',18,'gender','男',} result = info.symmetric_difference({1,'li','男'}) print(result) # {1, 'name', 'gender', 18, 'age'}
3.公共方法
-
len
info = {"name",'li','age',18,'gender','男',} print(len(info)) # 6
-
for 循环
info = {"name",'li','age',18,'gender','男',} for a in info: print(a) # 循环打印出所有元素
4.特殊情况
-
1、集合与列表取交集
info = {"name",'li','age',18,'gender','男',} result = info.intersection([1,'li','男']) print(result) # {'li', '男'} # {'li', '男'}
-
2.集合中出现0与False(谁在前输出谁)
info = {0, 2, 3, 4, False, "国风", None, (1, 2, 3)} print(info) # {0, '国风', 2, 3, 4, None, (1, 2, 3)}
-
3.字典中1与Ture同时为键(谁在前把后面值赋给前面的键)
info = { 1:'alex', True:'oldboy' } print(info) # {1: 'oldboy'}
5.总结
- 列表/字典/集合 -> 不能放在集合中+不能作为字典的key(unhashable)
- hash(哈希):因为在内部会将值进行哈希算法并得到一个数值(对应内存地址),以后用于快速查找。