字典

cooolr 于 2023-01-30 发布

创建字典

>>>world={'lr':'cool'}
>>>items=[('name','Gumby'),('age',42)]
>>>dict(items)
{'age':42,'name':'Gumby'}
>>>dict(name='Gumby',age=42)  关键字参数

基本字典操作

len(d)   返回d中项(键-值对)的数量
d[k]     返回关联到键k上的值
d[k]=v   将值v关联到键k上
del d[k] 删除键为k的项
k in d   检查d中是否有含有键为k的项

字典方法

clear 清除字典中所有的项,原地操作

>>>x={1:1}
>>>x.clear()
>>>x
{}

copy 浅复制字典

>>>x={1:1}
>>>y=x.copy()

延伸深复制

>>>from copy import deepcopy
>>>y=deepcopy(x)

fromkeys 使用给定的键建立新的字典,每个键对应值默认none

>>>{}.fromkeys(['name','age'])
{'age':None,'name':None}
>>>dict.fromkeys(['name','age'])
{'age':None,'name':None}

get 一个更宽松的访问字典项的方法,一般来说,如果试图访问字典中不存在的项时会出错,get就不会

>>>d={}
>>>print d['name']
Traceback (most recent call last):
KeyError: 'name'
>>>print d.get('name')
None
>>>print d.get('name','N/A')  自定义默认值
N/A

has_key 检查字典中是否含有特定的键。相当于表达式k in d。python3不含此函数

>>>d={}
>>>d.has_key('name')
False

items和iteritems items方法将字典中所有的项以列表的方式返回,列表中的每一项都表示为(键,值)对的形式,没顺序 iteritems返回的是迭代器

>>>d={'a':1,'b':2,'c':3}
>>>d.items()
[('b',2),('a',1),('c',3)]

keys和iterkeys keys方法将字典中的键以列表形式返回,iterkeys返回的是迭代器


pop 用来获得对应于给定键的值,然后将这个键-值对从字典中移除

>>>d={'x':1,'y':2}
>>>d.pop('x')
1
>>>d
{'y':2}

popitem 类似于list.pop,后者会弹出列表的最后一个元素,但popitem弹出随机的项

>>>d={'a':1,'b':2,'c':3}
>>>d.popiem()
('b',2)
>>>d
{'a':1,'c':3}

setdefault 类似于get方法,能够获得与给定键相关联的值,当键不存在时,setdefault返回默认值并更新字典,当键存在时,就返回其对应的值。可指定默认值

>>>d={}
>>>d.setdefault('name')
None
>>>d
{'name':None}
>>>d={'name':'lr'}
>>>d.setdefault('name')
'lr'

update 利用一个字典更新另外一个字典 提供的字典将会被添加到新的字典,若有相同的键则会进行覆盖

>>>d={'name':'lch',age=18}
>>>x={'name':'lr'}
>>>d.update(x)
>>>d
{'name':'lr',age=18}

values和itervalues values方法以列表的形式返回字典中的值(itervalues返回值的迭代器) 返回值的列表可以包含重复的值