集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
#集合
>>> num={}
>>> type(num)
<class 'dict'>
>>> num1={1,2,3,4}
>>> type(num1)
<class 'set'>
#集合会自动去掉重复的元素
>>> num2={1,2,3,4,5,4,3,2,1}
>>> num2
{1, 2, 3, 4, 5}
#集合不支持排序查找
>>> num2[2]
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
num2[2]
TypeError: 'set' object is not subscriptable
#创建集合的两种方式
>>> num3={1,2,3,4,5,65,4,3}
>>> set1 = set([1,2,3,45,4,3])
>>> set1
{1, 2, 3, 4, 45}
>>>
访问集合中的值
可以使用for把所有值打印出来,或者用in检测是否在
frozen不可变集合
昨日字典部分补充:
- python是否支持一键多值?
实际上不支持,但是可以通过其他方法实现
setdefault函数:Python 字典 setdefault() 方法和 get()方法 类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。
方法1:值为包含多个数的列表
d1={}
key=1
value=2
d1.setdefault(key,[]).append(value)
value=2
d1.setdefault(key,[]).append(value)
方法二:将新字典作为字典的值
d1={}
key=1
keyin=2
value=11
d1.setdefault(key,{})[keyin]=value
keyin=2
value=22
d1.setdefault(key,{})[keyin]=value
keyin=3
value=33
d1.setdefault(key,{})[keyin]=value
键和变量的类型限制
键只能是Hash类型,不能是可变类型。哈希的数据类型,即不可变的数据结构(字符串str、元组tuple、对象集objects)。
值没有任何限制,可以是任意的python对象
集合存储的对象集合存储的为Hash类型,所以不能添加列表之类的
如:输入set1={1,1.0},会返回1这个值,因为1和1.0会被哈希函数计算到相同的地址