Python字典处理技巧
从字典中取值(不想由于搜索的键不存在而异常)
解决方法:
使用字典的get方法 (get方法只读取字典的值而不会去修改字典)
d={'key':'value'}
print d.get('key','not found')
print d.get('keys','not found')
假如键key存在,那么get方法就会返回相应的值,否则,返回第二个参数
给字典添加一个条目
解决方法:
使用字典的setdefault方法,假设正在创建一个由单词到页数的映射,关键的代码为
def addword(theIndex, word, pagenumber):
theIndex.setdefault(word, [ ]).append(pagenumber)
假设word键存在,setdefault返回的就是key对应的value,否则的话,就新增一个word键,并添加value,这里默认添加的是一个空的列表。
setdefault方法返回的是value,这里就是一个列表,代表了单词到页数的映射表,之后调用append方法,就可以添加这个页数了。
将列表元素交替的作为键和值来创建字典
解决方法:
使用dict和zip方法分片之后合并
def dictFormList(keyAndValues):
return dict(zip(keyAndValues[::2],keyAndValues[1::2]))
获取字典的一个子集
解决方法:
如果不想改动源字典
def sub_dict(somedict, somekeys, default=None):
return dict([(k, somedict.get(k, default)) for k in somekeys])
如果想从源字典中删除符合条件的项目
def sub_dict(somedict, somekeys, default=None):
return dict([(k, somedict.pop(k, default)) for k in somekeys])
反转字典
解决方法:
def invert_dict(d):
return dict([(v,k) for k,v in d.iteritems()])
用字典分派方法和函数(就是switch语句)
解决方法:
同样的,可以使用字典进行操作
animals=[]
number_of_felines=0
def deal_with_a_cat():
global number_of_felines
print "meow"
animals.append('feline')
number_of_felines+=1
def deal_with_a_dog():
print "bark"
animals.append('canine')
def deal_with_a_bear():
print "watch out for the *HUG*!"
animals.append('ursine') tokenDict={
"cat":deal_with_a_cat,
"dog":deal_with_a_dog,
"bear":deal_with_a_bear,
} words=["cat","bear","cat","dog"]
for word in words:
tokenDict[word]()
nf=number_of_felines
print 'we met %d feline%s' % (nf, 's'[nf==1:])
print 'the animal we met were:',' '.join(animals)
字典的并集和交集
解决方法:
使用fromkeys创建字典,例如
a=dict.fromkeys(xrange(1000))
b=dict.fromkeys(xrange(500,1500))
最快的计算并集的方法是
union=dict(a,**b)
而最快且最简洁的方法是
inter=dict.fromkeys([x for x in a if x in b])
Python字典处理技巧的更多相关文章
- Python字典增删操作技巧简述
Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技 ...
- !!Python字典增删操作技巧简述+Python字典嵌套字典与排序
http://developer.51cto.com/art/201003/186006.htm Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些 ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- Python 代码优化常见技巧
代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 80% 的工作量.优化通常包含两方 ...
- python字典的常用操作方法
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串.数字.元组等其他容器模型.本文章主要介绍Python中字典(Dict)的详解操作方法,包含创建.访问.删除.其它操作等,需 ...
- <转> 30 个有关 Python 的小技巧
目录[+] 1.1 拆箱 1.2 拆箱变量交换 1.3 扩展拆箱(只兼容python3) 1.4 负数索引 1.5 切割列表 1.6 负数索引切割列表 1.7指定步长切割列表 1.8 负数步长切割列表 ...
- python基础===Python 代码优化常见技巧
Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...
- [转载]关于python字典类型最疯狂的表达方式
一个Python字典表达式谜题 让我们探究一下下面这个晦涩的python字典表达式,以找出在python解释器的中未知的内部到底发生了什么. # 一个python谜题:这是一个秘密 # 这个表达式计算 ...
- 30个有关Python的小技巧,给程序员的 30 个基本 Python 贴士与技巧
30个有关Python的小技巧 2013/07/04 · Python, 开发 · 4 评论 · Python 分享到: 66 本文由 伯乐在线 - Kevin Sun 翻译.未经许可,禁止转载!英文 ...
随机推荐
- Ibatis入门基本语法(转) good
Ibatis入门基本语法 一个项目中在写ibatis中的sql语句时,where user_id in (#user_id_list# ), 运行时总是不行,后来上网查了查,才知道这里不该用#,而应该 ...
- 让Apache支持中文Directory的最简方法
解决方法很简单,一句话,将httpd.conf配置文件的字符编码转换成UTF-8即可. 转换方法也很简单,在记事本中选择 文件->另存为,弹出的窗口中选择编码为UTF-8即可. 重新启动下apa ...
- HTML的标题样式
标题样式1 <p> <span style=" text-align: center; padding-bottom: 6px; padding-left: 20px; p ...
- c 这题做了半天,虽然做好了,但是思路还是不清晰,估计让我再做一次还是比较花时间的。
输入一个大写字符,如F 比如: 输入:F 输出: FEDCBA EDCBAB DCBABC CBABCD BABCDE ABCDEF 输入 B 输出: BA AB #include<stdio. ...
- AS3 Post 参数和ByteArray的方法及服务器端接收
as端: (form表单形式)req.method = URLRequestMethod.POST; var reqHeader:URLRequestHeader = new URLRequestHe ...
- 界面调试工具Reveal的使用介绍
Reveal 注: 此处介绍Reveal,其中大部分内容来自于唐巧的<iOS开发进阶>一书,以此说明. 如何使用Reveal进行模拟器调试,只需进行以下三个步骤即可. 1. 创建.lldb ...
- php怎样求一个数组中最长的
<?php $arr = array( 0 => 'd', 1 => '68b3', 2 => 'a86', 3 => 'c9aa97b23b71d5c', 4 => ...
- Oracle 如何写出高效的 SQL
转自:Oracle 如何写出高效的 SQL 要想写出高效的SQL 语句需要掌握一些基本原则,如果你违反了这些原则,一般情况下SQL 的性能将会很差. 1. 减少数据库访问次数连接数据库是非常耗时的,虽 ...
- 【转载】国内网站博客数据统计选免费Google Analytics还是百度统计
[转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics ...
- 使用JS进行pc端、手机端判断
<script type="text/javascript"> (function(){ var ua = nav ...