字典像列表,但更一般。列表的索引必须是整数,但字典几乎可以是任何类型。
基本操作
新建一个字典
eng2sp=dict()
print eng2sp增加元素
eng2sp[‘one’]=’uno’
print eng2sp新建一个有多个元素的字典,注意其打印结果顺序。
eng2sp={‘one’:’uno’,’two’:’dos’,’three’:’tres’}
print eng2sp函数len
print len(eng2sp)
查询键是否存在
‘one ’ in eng2sp
‘uno’ in eng2sp查询值是否存在
vals=eng2sp.values()
‘one ’ in vals
颠倒查询
查询:给定一个字典d和关键字k,操作v=d[k]。
颠倒查询:给定一个v,查找对应的k。
问题:
1.若许多k映射同一个v,返回其中一个,还是全部k列表?
2.必须遍历v,没有简单语法实现。
解决:
这是一个简陋的版本,只返回第一个k。
def reverse_lookup(d,v):
for k in d:
if d[k]=v:
return k
raise ValueError这是一个改进版。
def invert_dict(d):
inv=dict()
for key in d:
val=d[key]
if val not in inv:
inv[val]=key
else:
inv[val].append(key)
return inv