传统创建字典的方法:
bob = {'name':'Bob Smith', 'age':42, 'pay':40000}
sue = {'name':'Sue Jones', 'age':45, 'pay':50000}
使用关键词参数和类型构造函数,只需要所有的键都是字符串:
jim = dict(name="Jim Green", age="35", pay="2000")
print(jim)
{'name': 'Jim Green', 'age': '35', 'pay': '2000'}
一个字段一个字段填写字典:
>>> sue = {}
>>> sue['name'] = 'Sue Jones'
>>> sue['age'] = '45'
>>> sue['pay'] = '40000'
>>> sue['job'] = 'hdw'
>>> sue
{'name': 'Sue Jones', 'age': '45', 'pay': '40000', 'job': 'hdw'}
使用zip函数将键/值连接在一起:
names = ['name', 'age', 'pay', 'job']
values = ['Sue Jones', 40, 30000, 'hrd']
print(list(zip(names, values)))
print(dict(zip(names, values)))
[('name', 'Sue Jones'), ('age', 40), ('pay', 30000), ('job', 'hrd')]
{'name': 'Sue Jones', 'age': 40, 'pay': 30000, 'job': 'hrd'}
通过一个键序列和所有键的可选初始值来创建字典:(便于初始化空字典)
>>> fields = ('name', 'age', 'pay', 'job')
>>> record = dict.fromkeys(fields, '?')
>>> record
{'name': '?', 'age': '?', 'pay': '?', 'job': '?'}
>>> fields = ['name', 'age', 'pay', 'job']
>>> record = dict.fromkeys(fields, '?')
>>> record
{'name': '?', 'age': '?', 'pay': '?', 'job': '?'}
提取多个字典中的多个值:
创建列表
bob = {'name':'Bob Smith', 'age':42, 'pay':40000}
sue = {'name':'Sue Jones', 'age':45, 'pay':50000}
people = [bob, sue]
names = [person['name'] for person in people]
print(names)
print(sum(person['pay'] for person in people))
['Bob Smith', 'Sue Jones']
90000
想列表解析和按需生成器这样的工具,可以达到类似sql查询这样的效果,只是这里操作的是内存中的对象。
升职加薪:
bob = {'name':'Bob Smith', 'age':42, 'pay':40000} sue = {'name':'Sue Jones', 'age':45, 'pay':50000} people = [bob, sue] for person in people: print(person['name'].split()[-1]) person['pay'] *= 1.1 print(person['pay'])
Smith 44000.0 Jones 55000.00000000001