跟我一起学Python之十:字典

 1.字典概述
Python字典同Perl hash函数相同。
字典是内置的数据结构类型,是一种集合。
字典是无序的集合,列表是有序的集合。
字典中是通过“键”来取数据,通过键值对来存储数据的。


字典的创建和使用
键的对象不可以是列表,因为列表是可变的。

字典由大括号包裹,赋值格式:键:值,键,值。。。

 

>>> phonebook = { 'Alice':'2341','Beth':'9102','Cecil':'3258' }
>>> phonebook
{'Beth': '9102', 'Alice': '2341', 'Cecil': '3258'}
>>> d1 = { 'spam':2,'ham':1,'eggs':3 }
>>> d1
{'eggs': 3, 'ham': 1, 'spam': 2}

 

可嵌套赋值

>>> d2 = {'fodd':{'ham':1,'eggs':3}}
>>> d2
{'fodd': {'eggs': 3, 'ham': 1}}

 

访问字典
>>> phonebook['Cecil']
'3258'

 

1.dict函数
dict用与把别的形式的序列转换成字典

>>> items=[('name','Gumby'),('age',42)]
>>> d=dict(items)
>>> d
{'age': 42, 'name': 'Gumby'}

 

dict也可以用于字典赋值
>>> d4=dict(name='Gumby',age=42)
>>> d4
{'age': 42, 'name': 'Gumby'}

 

2.基本字符操作
查看字典键值对数量
>>> len(phonebook)
3

 

查看字典键值对
>>> phonebook['Beth']
'9102'

 

修改字典键值对
>>> phonebook['Beth']='9103'
>>> phonebook['Beth']
'9103'

 

增加字典键值对
>>> phonebook['yumeng']='3204'
>>> phonebook
{'yumeng': '3204', 'Beth': '9103', 'Alice': '2341', 'Cecil': '3258'}


字典中的键是不允许重复的。

删除字典键值对
>>> del phonebook['yumeng']
>>> phonebook
{'Beth': '9103', 'Alice': '2341', 'Cecil': '3258'}

检查是否包含(检查键)

>>> 'Alice' in phonebook
True
>>> 'yumeng' in phonebook
False

存在的话返回True 不存在返回False

e.g.
people={
    'Alice':{'phone':'2341','addr':'Foo frive 23' },
    'Beth' :{'phone':'9102','addr':'Bar street 42'},
    'Cecil':{'phone':'3158','addr':'Baz avenue 90'}
    }

labels={'phone':'phone number','addr':'address'}

name=raw_input('Name:')

request=raw_input('phone number(p) or address(a)?')

if request=='p':key='phone'
if request=='a':key='addr'

if name in people:print "%s's %s is %s." % (name,labels[key],people[name][key])


Name:Alice
phone number(p) or address(a)?p
Alice's phone number is 2341.

 

3.字典的格式化字符串

>>> phonebook = { 'Alice':'2341','Beth':'9102','Cecil':'3258' }
>>> phonebook
{'Beth': '9102', 'Alice': '2341', 'Cecil': '3258'}
>>> "Cecil's phone number is %(Cecil)s" % phonebook
"Cecil's phone number is 3258"

()s  括号中指定是那个键

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值