| 
                         转变成如下: 
- 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                        (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |