Python字典方法
字典初体验
创建空字典
dict2 = {}
>>> type(dict2)
<class 'dict'>
创建字典
>>> dict1 = {1:'one',2:'two',3:'three'}
>>> dict1
{1: 'one', 2: 'two', 3: 'three'}
添加、修改和删除字典项
>>> dict2
{}
>>> dict2[1] = 'one'
>>> dict2[2] = 'two'
>>> dict2
{1: 'one', 2: 'two'}
>>> dict2[2] = 'three'
>>> dict2
{1: 'one', 2: 'three'}
>>> del dict2[1]
>>> dict2
{2: 'three'}
字典方法
adict.keys() 返回一个包含字典所有key的列表,这个列表不能直接引用,必须要经过list()转化
>>> dict3 = {1:'one',2:'Two',3:'three'}
>>> dict3.keys()
dict_keys([1, 2, 3])
>>> list(dict3.keys())
[1, 2, 3]
adict.values() 返回一个包含字典所有value的列表,这个列表不能直接引用,必须要经过list()转化
adict.items() 返回一个包含所有(键,值)元祖的列表;
>>> dict3.items()
dict_items([(1, 'one'), (2, 'Two'), (3, 'three')])
adict.clear() 删除字典中的所有选项或元素
>>> dict3
{1: 'one', 2: 'Two', 3: 'three'}
>>> dict3.clear()
>>> dict3
{}
adict.copy() 返回一个字典的副本,如果原字典改变,副本不会改变;
>>> dict = {1:[2,5],2:'two'}
>>> dict1 = dict.copy()
>>> dict1
{1: [2, 5], 2: 'two'}
>>> dict[1] = [2,3,5]
>>> dict
{1: [2, 3, 5], 2: 'two'}
>>> dict1
{1: [2, 5], 2: 'two'}
adict.fromkeys(seq, val=None) 创建并返回一个新字典,seq为一个序列,序列中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None),其中所有的key都对应同样的一个val
>>> dict1 = {}
>>> dict2 = dict1.fromkeys([1,2,3],'one')
>>> dict2
{1: 'one', 2: 'one', 3: 'one'}
>>> dict1
{}
>>> dict1 = dict2.fromkeys(['a','b','c'],'green')
>>> dict1
{'a': 'green', 'b': 'green', 'c': 'green'}
>>> dict2
{1: 'one', 2: 'one', 3: 'one'}
adict.get(key, default = None) 返回字典中key的值,如果该key不存在,则返回default的值,default的值默认为None
>>> dict2
{1: 'one', 2: 'one', 3: 'one'}
>>> dict2.get(1)
'one'
>>> dict2.get(4)
>>> dict2.get(4,'nba')
'nba'
adict.pop(key[,default]) 删除并返回key对应value的值,如果key不存在,返回设置的default的值,如果没有设置default,返回KeyError
>>> dict2
{1: 'one', 2: 'one', 3: 'one'}
>>> dict2.pop(1)
'one'
>>> dict2
{2: 'one', 3: 'one'}
>>> dict2.pop(4,'abc')
'abc'
>>> dict2
{2: 'one', 3: 'one'}
>>> dict2.pop(4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 4
adict.setdefault(key, default=None) 返回key对应的value,如果key不存在,返回default的值等同于adict.get()
adict.update(bdict) adict和bdict同为字典,使用bdict更新adict,两个字典adict里面的键值对保持不变,将bdict存在但adict里面没有的键值对添加到adict里面
>>> dict1
{1: 'one', 2: 'two', 3: 'three'}
>>> dict2
{2: 'two', 3: 'abc', 4: 'four'}
>>> dict1.update(dict2)
>>> dict1
{1: 'one', 2: 'two', 3: 'abc', 4: 'four'}
>>> dict2
{2: 'two', 3: 'abc', 4: 'four'}
如果如果相同的key,但value不相同,则dict1中的value变为dict2中的value