字典方法
1.clear方法
clear方法可以清除字典中所有的项,无返回值;
d = {'name': 'Gumby'}
returned_value = d.clear() # None
2.copy方法
copy方法返回一个具有相同键-值对的新字典(实现的是浅复制)
x = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
y = x.copy()
y['username'] = 'mlh'
y['machines'].remove('bar')
# x--{'username': 'admin', 'machines': ['foo', 'baz']} y--{'username': 'mlh', 'machines': ['foo', 'baz']}
当在副本中替换值时原始字典不受影响,若修改某个值(原地修改,而非替换)则原始字典也会改变;可以使用copy模块的deepcopy函数来实现深复制,复制其包含的所有值;
c = d.copy() # 浅复制
dc = deepcopy(d) # 深复制
3.fromkeys方法
fromkeys方法可以使用给定的键建立新的字典,每个键对应默认值None;
{}.fromkeys(['name', 'age']) # {'age': None, 'name': None}
还可直接在dict上调用该方法,自己提供默认值(dict是所有字典的类型);
dict.fromkeys(['name', 'age'], '(unkonwn)') # {'age': '(unkonwn)', 'name': '(unkonwn)'}
4.get方法
get方法用于访问字典项,当访问不存在的项时返回None,还可以自定义默认值替换None;
d.get('name', 'N/A') # 'N/A'
5.has_key方法
has_key方法用于检查字典中是否含有特定的键,表达式d.has_key(k)
相当于表达式k in d
;
6.items和interitems方法
items方法将字典中所有项以列表方式返回,列表中每一项都表示为(键,值)对的形式,但没有遵循特定的次序;
d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
d.items() # [('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')]
interitems方法的作用大致相同,但返回迭代器对象而非列表;
7.keys和interkeys方法
keys方法将字典中的键以列表形式返回,interkeys方法返回针对键的迭代器;
8.pop方法
pop方法用于获取对应于给定键的值,并将该键-值对从字典中移除;
9.popitem方法
popitem方法类似于list.pop,后者会弹出列表中的最后一个元素,popitem弹出随机的项;
d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
d.popitem() # ('url', 'http://www.python.org')
10.setdefault方法
setdefault方法某种程度上类似于get方法,能够获得给定键相关联的值;除此之外,setdefault还能在字典中不含有给定键的情况下设定相应的键值;
d = {}
d.setdefault('name', 'N/A') # 返回'N/A',d为{'name': 'N/A'}
11.update方法
update方法可以利用一个字典项更新另一个字典;
d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
x = {'title': 'Python Language Website'}
d.update(x) # {'title': 'Python Language Website', 'url': 'http://www.python.org', 'spam': 0}
提供的字典中的项会被添加到旧的字典中,若有相同的键会进行覆盖;
12.values和intervalues方法
values方法以列表的形式返回字典中的值,intervalues返回值的迭代器;