1,列表推导
已知一个列表,刷选出偶数列表方法:
用下面的代替
2,字典推导
teams = [ "Packers" , "49ers" , "Ravens" , "Patriots" ]print { key : value for value , key in enumerate ( teams ) }>>> { '49ers' : 1 , 'Ravens' : 2 , 'Patriots' : 3 , 'Packers' : 0 }
iterable = 'asdfghjk' i = 0 for item in iterable: print(i, " ", item) i += 1
现在我们这样操作:
iterable='asdfghjk' for i, item in enumerate(iterable): print(i, " ", item)
enumerate函数还可以接收第二个参数。就像下面这样:
list(enumerate('abc')) # [(0, 'a'), (1, 'b'), (2, 'c')] list(enumerate('abc', 1)) # [(1, 'a'), (2, 'b'), (3, 'c')]
my_dict = {i: i * i for i in range(10)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} my_set = {i * 15 for i in range(10)} # {0, 135, 105, 75, 45, 15, 120, 90, 60, 30}列表解析
5,交换变量
x = 6y = 5x , y = y , xprint x>>> 5print y>>> 6
6,两个列表同时迭代
nfc = ["Packers", "49ers"]afc = ["Ravens", "Patriots"]for teama , teamb in zip ( nfc , afc ) :print teama + " vs. " + teamb>>> Packers vs. Ravens>>> 49ers vs. Patriots
7,将列表转换成字符串
teams = ["Packers", "49ers", "Ravens", "Patriots"]print ", " . join ( teams )>>> 'Packers, 49ers, Ravens, Patriots'
8,从字典中获取元素
不要用下列的方式
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)
9,60个字符解决FizzBuzz
#写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
for x in range(1, 101):print("Fizz"[x%3*4:]+"Buzz"[x%5*4:] or x)
from collections import Counterprint Counter("hello")>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
from itertools import combinationsteams = [ "Packers" , "49ers" , "Ravens" , "Patriots" ]for game in combinations ( teams , 2 ) :print game>>> ( 'Packers' , '49ers' )>>> ( 'Packers' , 'Ravens' )>>> ( 'Packers' , 'Patriots' )>>> ( '49ers' , 'Ravens' )>>> ( '49ers' , 'Patriots' )>>> ( 'Ravens' , 'Patriots' )