字典是python独特的一种映射关系的数据类型,由成对的键值(项)组成。
建立方法:
1.直接输入键值建立
items ={‘apple‘:‘$5‘,‘pear‘:‘$4‘,‘banana‘:‘6‘}
print items[‘apple‘]
$5注意一定使用{ }, 否则成了列表。
2. 通过dict函数从列表建立
items =[[‘apple‘,‘$5‘],[‘pear‘,‘$4‘],[‘banana‘,‘6‘]]
print items
print items[0:1]
ditems = dict(items)
print ditems
print ditems[‘apple‘]
[[‘apple‘, ‘$5‘], [‘pear‘, ‘$4‘], [‘banana‘, ‘6‘]]
[[‘apple‘, ‘$5‘]]
{‘pear‘: ‘$4‘, ‘apple‘: ‘$5‘, ‘banana‘: ‘6‘}
$5
三点需要注意的:
1. Key类型可以是任意类型,例如float, tuple, string
2.不能对列表索引外的元素赋值,但是可以对字典中没有的key直接赋值添加。
x=[]
x[10]=53
IndexError: list assignment index out of range
x={}
x[10]=‘53‘
print x
{10: ‘53‘}
3. in 操作检查的是key,不是value,所以更高效。
例子:建立一个简单的数据库
#用字典建立一个项目管理数据库Project,key-项目名称,value里又包含两个字典A和B,key A - 项目人数 key B - 项目费用
#我们可以使用直接写键值项的方式建立字典,但数据量太大,为了简洁明了,首先分别建立列表A和B,组成小字典dA和dB, 然后再通过Project的关键字参数p1和p2组成大字典Project
A=[[‘nPeople‘,‘12‘],[‘nCost‘,‘$5000‘]]
B=[[‘nPeople‘,‘15‘],[‘nCost‘,‘$8000‘]]
dA=dict(A)
dB=dict(B)
print dict(dA)
print dict(dB)
P=dict(p1=dA,p2=dB)
print P
{‘nPeople‘: ‘12‘, ‘nCost‘: ‘$5000‘}
{‘nPeople‘: ‘15‘, ‘nCost‘: ‘$8000‘}
{‘p2‘: {‘nCost‘: ‘$8000‘, ‘nPeople‘: ‘15‘}, ‘p1‘: {‘nCost‘: ‘$5000‘, ‘nPeople‘: ‘12‘}}接下去进行交互,提示输入项目编号p1 or p2, 检查数据库中是否存在,并输出需要的元素。
A=[[‘nPeople‘,‘12‘],[‘nCost‘,‘$5000‘]]
B=[[‘nPeople‘,‘15‘],[‘nCost‘,‘$8000‘]]
dA=dict(A)
dB=dict(B)
P=dict(p1=dA,p2=dB)
labels = {‘nPeople‘:‘number of people‘,‘nCost‘:‘cost of money ‘}
id=raw_input(‘Project id: ‘ )
request = raw_input(‘want to see nPeople(p) or nCost(c) ? ‘)
if request == ‘p‘:key = ‘nPeople‘
if request == ‘c‘:key = ‘nCost‘
if id in P : print "project %s‘s %s is %s." %(id,labels[key],P[id][key])Project id: p1 want to see nPeople(p) or nCost(c) ? c project p1‘s cost of money is $5000. Project id: p2 want to see nPeople(p) or nCost(c) ? p project p2‘s number of people is 15.
原文地址:http://bretoncrepe.blog.51cto.com/9590251/1577681