dict()
创建一个字典
item = ['Alice':'23', 'Tom':'21']
d = dict(item)
d = dict(name='Tom', age=42)
# 通过两个list创建字典
li1 = ['Tom', 'Alice']
li2 = ['23', '24']
d = dict(zip(li1,li2))
dict.clear()
清除字典中的所有项
d = dict(name='Tom', age=42)
returned_value = d.clear()
print(d)
# {}
print(returned_value)
# None
dict.copy()
http://www.runoob.com/python/att-dictionary-copy.html
返回一个具有相同键值对的新字典(该方法实现的是浅复制)
dict1 = {'user':'runoob','num':[1,2,3]}
dict2 = dict1
dict3 = dict1.copy()
# 修改 data 数据
dict1['user']='root'
dict1['num'].remove(1)
# 输出结果
print(dict1)
print(dict2)
print(dict3)
# {'num': [2, 3], 'user': 'root'}
# {'num': [2, 3], 'user': 'root'}
# {'num': [2, 3], 'user': 'runoob'}
dict1 和 dict3 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)
deepcopy(dict)
深复制
from copy import deepcopy
d = {}
d['name'] = ['Tom', 'Alice']
c = d.copy
dc = deepcopy(d)
a['name'].appned('Clive')
print(c)
# {'name':['Tom', 'Alice', 'Clive']}
print(dc)
# {'name':['Tom', 'Alice']}
dict.fromkeys(seq, value=None)
用给定的键值创建新字典,默认值为None
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print(dict)
# {'age': None, 'name': None, 'sex': None}
dict = dict.fromkeys(seq, 10)
# {'age': 10, 'name': 10, 'sex': 10}
dict.get(value, default=None)
提供一个宽松的访问字典的方法,当访问存在的键的时候不会报错会返回一个默认值
d = {'name':'Tom', 'age':'23'}
print(d['sex'])
# KeyError
print(d.get('sex'), 'unknown')
# unknown
dict.has_key()value
检查字典中是否含有特定的键,相当于表达式 k in d python3中不包含这个函数
d = {}
print d.has_key('name')
# False
d['name'] = 'Tom'
print d.has_key('name')
# True
dict.items(),dict.iteritems()
以列表返回可遍历的(键, 值) 元组数组,iteritems()方法返回一个迭代器
item = ['Alice':'23', 'Tom':'21']
d = dict(item)
print(d.items)
# [('Alice','23'),('Tom','21')]
在多数情况下使用iteritems()会更加高效(尤其是想要迭代器的情况下)
dict.keys(), dict.iterkeys()
keys()方法将字典中的键以列表形式返回,iterkeys()返回的是迭代器
item = ['Alice':'23', 'Tom':'21']
d = dict(item)
print('d.keys')
# ['Alie', 'Tom']
dict.values(), dict.itervalues()
values()方法以列表的形式返回字典中的值,itervalues返回迭代器
item = ['Alice':'23', 'Tom':'21']
d = dict(item)
print('d.keys')
# ['23', '21']
dict.pop(value)
返回给定键的值并将其删除
d = {'x':1, 'y':2}
print(d.pop('x'))
# 1
print(d)
{'y':2}
dict.popitem()
随机返回一个键值对,然后将其删除,
d = {'x':1, 'y':2}
print(d.popitem())
# ('y':1)
print(d)
{'x':1}
dict.setdefault(value,default)
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
dict = {'runoob': '菜鸟教程', 'google': 'Google 搜索'}
print(dict.setdefault('runoob', None))
# 菜鸟教程
print(dict.setdefault('Taobao', '淘宝'))
# 淘宝
dict.update(another_dict)
利用一个字典项更新另一个字典项
dict = {'Name': 'Zara', 'Age': 7}
dict2 = {'Sex': 'female' }
dict.update(dict2)
print(dict)
# {'Age': 7, 'Name': 'Zara', 'Sex': 'female'}
提供的字典中的项会被添加到新的字典中去,如果有相同的键会进行覆盖