创建和使用字典
1 | phone = { 'Andy' : '150' , 'Bob' : '137' , 'john' : '138' } |
字典由键及其相应的值组成,这种键值对称为项,在示例中,键为名字而值为电话号码。每个键与值之间用冒号隔开,整个字典放在花括号内。空字典用两个花括号表示{}。
函数dict
可使用dict从其他映射或键值对序列创建字典。
item = [( 'name' , "Andy" ),( 'age' , 12 )] d = dict (item) d { 'name' : 'Andy' , 'age' : 12 } |
还可使用实参来调用函数
d = dict (name = 'Andy' ,age = 12 ) d { 'name' : 'Andy' , 'age' : 12 } # 删除字典元素 del d[ 'name' ] d { 'age' : 12 } # len返回字典包含的键值对数 len (d) 1 # 修改值 d[ 'age' ] = 20 d { 'age' : 20 } |
字典方法
clear删除所有字典项
d { 'age' : 20 , 'name' : 'andy' } d.clear() d {} >>> |
copy返回一个新字典,把汗的键值对与原来的字典相同,当替换副本中的值时,原件不受影响,如果修改原件指向的值将被修改
x = { 'username' : 'admin' , 'machines' :[ 'foo' , 'bar' , 'cc' ]} y = x.copy() y[ 'username' ] = 'root' y { 'username' : 'root' , 'machines' : [ 'foo' , 'bar' , 'cc' ]} x { 'username' : 'admin' , 'machines' : [ 'foo' , 'bar' , 'cc' ]} |
deepcopy同时复制值及其包含的所有值
from copy import deepcopy a = {} a[ 'name' ] = [ 'admin' , 'root' ] b = a.copy() ab = deepcopy(a) d[ 'name' ].append( 'tiger' ) a[ 'name' ].append( 'tiger' ) b { 'name' : [ 'admin' , 'root' , 'tiger' ]} a { 'name' : [ 'admin' , 'root' , 'tiger' ]} ab { 'name' : [ 'admin' , 'root' ]} |
get访问字典项
d = {} print (d.get( 'name' )) None 字典d中没有键值所以在使用get访问时返回 None ,也可指定默认值 d.get( 'name' , 'NO' ) 'NO' |
items返回一个包含所有字典项的列表,但字典中的顺序不确定
d = { 'title' : 'python web Site' , 'url' : 'http://www.python.org' , 'spam' : 0 } d.items() dict_items([( 'title' , 'python web Site' ), ( 'url' , 'http://www.python.org' ), ( 'spam' , 0 )]) it = d.items() len (it) 3 ( 'spam' , 0 ) in it True ( 'name' , 'admin' ) in it False |
keys返回一个字典视图,包含指定字典中的键
12 | d.keys() dict_keys([ 'title' , 'url' , 'spam' ]) |
pop获取与指定键相关联的值,并将该键值对从字典中删除
d.pop( 'title' ) 'python web Site' d { 'url' : 'http://www.python.org' , 'spam' : 0 } |
popitem随机弹出一个字典项,因为字典项顺序是不确定的,如果不要求删除字典项使用popitem
d.popitem() ( 'spam' , 0 ) d { 'url' : 'http://www.python.org' } |
setdefault获取与指定键相关联的值,setdefault还在字典不包含指定的键时,在字典中添加指定的键值对
d.setdefault( 'name' , 'N' ) 'N' d { 'name' : 'N' } d[ 'name' ] = 'admin' d { 'name' : 'admin' } |
update更新另一个字典
d { 'name' : 'admin' } a = { 'name' : 'root' , 'age' : 20 , 'py' : 3.6 } d.update(a) d { 'name' : 'root' , 'age' : 20 , 'py' : 3.6 } a { 'name' : 'root' , 'age' : 20 , 'py' : 3.6 } |
values返回由字典中的值组成的字典视图,方法values返回的视图可能包含重复的值
num = {} num[ 1 ] = 1 num[ 2 ] = 2 num[ 3 ] = 2 num.values() dict_values([ 1 , 2 , 2 ]) |