本文共 1414 字,大约阅读时间需要 4 分钟。
字典是映射类型
字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开字符串,列表,元组都是序列类型
eg:如果是序列,也可以实现类似字典功能,但是很麻烦
eg:直接使用字典,'李宁’称之为key,'一切皆有可能’称之为value,‘李宁’:‘一切皆有可能’称之为项
创建字典的方式
创建空字典,help(dict)可以查询字典用法 只要构建一种映射关系就行,这里面使用元组(list也行)构造一种映射关系,除了key:value,还可以用key=value的关键字方式创建字典 用索引key赋值>>> a = dict()>>> type(a)
>>> dict1 = { }>>> dict1.fromkeys((1,2,3)){ 1: None, 2: None, 3: None}>>> dict2 = { }>>> dict2.fromkeys((1,2,3),"Number"){ 1: 'Number', 2: 'Number', 3: 'Number'}>>> dict3 = { }>>> dict3.fromkeys((1,2,3),('one','two','three')){ 1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}若想要修改key=1,3的值,下面的做法是有问题的,会重新创建一个字典出来dict1.fromkeys((1,3),'数字'){ 1:'数字',3:'数字'}
访问字典的方法有key()、values()和items()
key()用于返回字典中的键,value()用于返回字典中所有的值,item()当然就是返回字典中所有的键值对(也就是项)dict1.get() 对应键的值不存在的话返回一个None,这样程序就不会报错
None只是表示对象,什么都没有的对象 dict1.get()比dict1[32]强势的地方 找不到值的时候,还可以返回一个具体的值 如果不知道一个键是否在字典中,可以使用成员资格操作符(in 或 not in)来判断。然而在序列中,查找的是元素的值,而不是索引号,字典查找的是key。clear()可清空一个字典
注意不好的清空方式dict1.copy():浅拷贝
id可以返回对象的地址 深拷贝前后对象的地址是不一样的,赋值前后对象的地址是一样的(浅拷贝)。eg潜拷贝若增加字典c中的项,可以影响到apop()是给定键弹出对应的值,popitem()是随机弹出一个项,因为字典是没有顺序的
dict1.setdefault():找不到给定键对应的值话会自动在字典中创建一个基于该键的项
(区别于dict1.get()的结果)dict1.update():根据一个字典或映射关系去更新另一个字典
参考:,,
转载地址:http://cliws.baihongyu.com/