基础
- 字典,又称hash哈希值、关系数组。是python唯一的映射类型,而非序列类型。
- 特点:一个key对应一个value,实例如下:
dict1={'李宁':'一切皆有可能!','耐克':'Just do it!'}
print('耐克的口号是:',dict1['耐克'])
运行结果:
耐克的口号是: Just do it!
如果大括号里面有映射,则为字典;没有映射则为集合。
- Python对键的要求相对要严格一些,要求它们必须是可哈希(Hash)的对象,不能是可变类型(包括变量、列表、字典本身等)。但是Python对值是没有任何限制的,它们可以是任意的Python对象。
基本用法
其他创建字典的方法
- 序列方法(套了三个括号)
dict1=dict((('李宁','一切皆有可能!'),('耐克','Just do it!')))
- 赋值方法(key不能有引号)
dict1=dict(李宁='一切皆有可能!',耐克='Just do it!')
- 直接给键赋值(键存在则替换,不存在则添加)
dict1['苍井空'] = '让AV征服宅男'
-
dict()是一个工厂函数(类型),同样的还有str(),int(),list(),tuple()
-
fromkeys(s[,v])创建新的字典0.
>>> dict.fromkeys((1,3),'数字')
{1: '数字', 3: '数字'}
其他相关方法
- keys() 返回字典的key;values()返回字典的值;items()返回整项
>>> dict1={}
>>> dict1=dict1.fromkeys(range(3),'赞')
>>> dict1
{0: '赞', 1: '赞', 2: '赞'}
>>> for eachKey in dict1.keys():
eachKey
0
1
2
>>> for eachValue in dict1.values():
eachValue
'赞'
'赞'
'赞'
>>> for eachItem in dict1.items():
eachItem
(0, '赞')
(1, '赞')
(2, '赞')
>>> dict1.values()
dict_values(['赞', '赞', '赞'])
- get() 访问字典,找不到对象时返回none/定义的参数
>>> print(dict1.get(6))
None
>>> print(dict1.get(6,'查无此词'))
查无此词
- in/not in 成员资格操作符
在字典中检查键(Key)是否存在比在序列中检查指定元素是否存在更高效。因为字典的原理是使用哈希算法存储,一步到位,不需要使用查找算法进行匹配,因此时间复杂度是O(1),效率非常高。
>>> 6 in dict1
False
- dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
>>> dict1.setdefault(6,666)
666
>>> dict1
{0: '赞', 1: '赞', 2: '赞', 6: 666}
-
clear()清空字典
不建议用dict1={}的方法,dict1这个标签重新指向了新的地址,但原地址的值没有改变,清空不彻底。 -
copy() 浅拷贝字典
和赋值不同,赋值给了新的id -
pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 -
popitem()
返回并删除字典中的最后一对键和值。 -
radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里