dict 基础
映射——字典(Python唯一内建的映射类型):可以使用任意不可变对象标识元素,因为是不可变的,所以一般最常用 key 类型就是 string 和 tuple
1. 格式化字符串在 dict 中的应用:
应用场景:(dict 的元素多起来的时候不要遗漏逗号 ,)
people = {
'Alice':{
'phone':'2341'<span style="color:#cc0000;">,</span> # attention , missing
'addr':'Foo drive'
},
'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'
elif request =='a':key = 'addr'
if name in people:
print name
print " %s's %s is %s." % (name, labels[key],people[name][key])
参考
字符串格式化(1. 字符串格式化 %——格式化字符串 % 需要放到格式化字符串的值)中所提到的,如果进行多个值的匹配,会用到tuple,见上述代码最后一行 % 后面是一个tuple。
dict 在字符串格式化中也很有用处,适用情况是 dict 的 key 必须是string:
phonebook = {'Beth':'9102', 'Alice':'2341', 'Cecil':'3258'}
str0 = "Cecil's phone number is %(Cecil)s"
print str0 % phonebook
上述代码中将格式化字符串的 转换说明符替换成为了: %(key) 的格式,显示出来的就是 key为 Cecil 的在dict 中的value
2. dict 与 list:
有人名列表和对应的电话号码列表,根据人名查找相应电话:
tel = ['2345', '80