码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记-字典(上)

时间:2014-11-18 01:43:07      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:python 字典   字符串格式化   微型数据库   

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



Python学习笔记-字典(上)

标签:python 字典   字符串格式化   微型数据库   

原文地址:http://bretoncrepe.blog.51cto.com/9590251/1577681

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!