字典是我Python基础里面学的最薄弱的环节,重新回顾,务必深入骨髓。
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,字典是另 一种可变容器模型,且可存储任意类型对象。具有极快的查找速度。
字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组、布尔值也可以,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型。
重点就是字典的键必须是可以被哈希的,什么叫可以被哈希我说不上来,简单的说就是不可变对象。
a= {True:"23"}
a[True]
‘23‘
1、构造字典:dict命令
字典可以通过dict构建字典,或者简单通过复制新建一个空字典a={}.
dd=dict(a=‘b‘, c=‘d‘) # 直接通过dict后面加入复制表达式,直接生成字典。 第一种
dd
{‘a‘: ‘b‘, ‘c‘: ‘d‘}
简单插入zip函数介绍下,zip是可以将两个或多个列表压缩成一个列表的
l1 = [1 ,2, 3]
l2 = [4, 5, 6]
l3 = list(zip(l1, l2))
l3
[(1, 4), (2, 5), (3, 6)]
解压的话通过zip(*l3)后续也要通过list可以显示。
通过zip我们就可以通过dict用另外一种方式创建字典。
l1 = [1 ,2, 3]
l2 = [4, 5, 6]
dict1=dict(zip(l1,l2)) #另一种
dict1
{1: 4, 2: 5, 3: 6}
相当于实际操作的为dict([[1,4],[2,5],[3,6]])
l=dict([[1,4],[2,5],[3,6]]) #另一种
l
{1: 4, 2: 5, 3: 6}
通过dict.fromkys #另外一种,前面的参数为可迭代对象,对象需要满足字典key的要求,后面的value默认就是None,可以不写,但写的话要注意,如果value你写了一个列表,那你的所有的keys都将指向同一个value,以前很早的时候不懂,上过一次当。
l1
[1, 2, 3]
dict.fromkeys(l1,None)
{1: None, 2: None, 3: None}
dict.fromkeys(‘abc‘)
{‘a‘: None, ‘b‘: None, ‘c‘: None}
网上另外的还有通过赋值用了copy与deepcopy这个我不介绍了,给自己提个醒,.copy,.deepcopy只要再可变参数list,dict,set下面才是可以用的。
原文地址:https://www.cnblogs.com/sidianok/p/11772503.html