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 括号中指定是那个键