[Python入门]Chapter11 字典
2016-02-29 23:38
671 查看
字典像列表,但更一般。列表的索引必须是整数,但字典几乎可以是任何类型。
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
颠倒查询:给定一个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
基本操作
新建一个字典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
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法