python dict的使用

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'}

提供的字典中的项会被添加到新的字典中去,如果有相同的键会进行覆盖

你可能感兴趣的:(python dict的使用)