字典是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