Python dict(字典)和 set

不变对象dict(字典)和 set

dict

dict 是字典的意思,就是把数据存在一个字典里面,查找也和字典一样方便。

例如:

name={'anqi': 1,'anqijiang': 2,'zhouanqi': 3}
print(name['anqijiang'])

结果:2

一个key对应一个value,且一但初始化便不能改变。dict的key必须是不可变对象 。

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。

重复的元素在set中自动被过滤。再次添加也没有效果。

因为dict和set存放的是 不可变量,所以将可变量放入dict或者是set 皆不可行。

看一组代码:

>>> tuple1=(1,2,3)                              #这是一个数组,其值不可变
>>> dict1={'tuple1':tuple1}                     #把这个数组放入字典中
>>> dict1                                       #可执行成功
{'tuple1': (1, 2, 3)}
>>> set1={tuple1}                               #放入set中
>>> set1                                        #可执行成功
{(1, 2, 3)}
>>> tuple2=(1,[2,3])                            #数组2,其元素中包括一个整形和一个列表,列表是可变对象
>>> dict2={'tuple2':tuple2}                      #因为dict中只有key是不可变对象
>>> dict2                                       #所以dict2可以执行
{'tuple2': (1, [2, 3])}
>>> set2={tuple2}                               #set整个存储的都是不可变对象,所以不可以执行
Traceback (most recent call last):
  File "<pyshell#46>", line 1, in <module>
    set2={tuple2}
TypeError: unhashable type: 'list'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值