转变成如下:
- numbers = [1,2,3,4,5,6]
- even = [number for number in numbers if number%2 == 0]
12 字典推导
和列表推导类似,字典可以做同样的工作:
- teams = ["Packers", "49ers", "Ravens", "Patriots"]
- print {key: value for value, key in enumerate(teams)}
- >>> { 49ers : 1, Ravens : 2, Patriots : 3, Packers : 0}
13 初始化列表的值
- items = [0]*3
- print items
- >>> [0,0,0]
14 列表转换为字符串
- teams = ["Packers", "49ers", "Ravens", "Patriots"]
- print ", ".join(teams)
- >>> Packers, 49ers, Ravens, Patriots
15 从字典中获取元素
我承认try/except代码并不雅致,不过这里有一种简单方法,,尝试在字典中找key,如果没有找到对应的alue将用第二个参数设为其变量值。
- data = { user : 1, name : Max , three : 4}
- try:
- is_admin = data[ admin ]
- except KeyError:
- is_admin = False
替换成这样
- data = { user : 1, name : Max , three : 4}
- is_admin = data.get( admin , False)
16 获取列表的子集
有时,你只需要列表中的部分元素,这里是一些获取列表子集的方法。
- x = [1,2,3,4,5,6]
- #前3个
- print x[:3]
- >>> [1,2,3]
- #中间4个
- print x[1:5]
- >>> [2,3,4,5]
- #最后3个
- print x[3:]
- >>> [4,5,6]
- #奇数项
- print x[::2]
- >>> [1,3,5]
- #偶数项
- print x[1::2]
- >>> [2,4,6]
除了python内置的数据类型外,在collection模块同样还包括一些特别的用例,在有些场合Counter非常实用。如果你参加过在这一年的Facebook HackerCup,你甚至也能找到他的实用之处。
- from collections import Counter
- print Counter("hello")
- >>> Counter({ l : 2, h : 1, e : 1, o : 1})
17 迭代工具
和collections库一样,还有一个库叫itertools,对某些问题真能高效地解决。其中一个用例是查找所有组合,他能告诉你在一个组中元素的所有不能的组合方式
- from itertools import combinations
- teams = ["Packers", "49ers", "Ravens", "Patriots"]
- for game in combinations(teams, 2):
- print game
- >>> ( Packers , 49ers )
- >>> ( Packers , Ravens )
- >>> ( Packers , Patriots )
- >>> ( 49ers , Ravens )
- >>> ( 49ers , Patriots )
- >>> ( Ravens , Patriots )
18 False == True
比起实用技术来说这是一个很有趣的事,在python中,True和False是全局变量,因此:
- False = True
- if False:
- print "Hello"
- else:
- print "World"
- >>> Hello
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:云计算网_泰州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|