[译]以下是我在Python中,多年来收集的一些有用的快捷键和工具。希望你能在其中找到对你有帮助的。
交换变量
1 | x = 6 |
if 语句在行内
1 | print "hello" if True else "world" |
连接
下面的最后一种方式在绑定两个不同类型的对象时显得很酷。
1 | nfc = ["Packers", "49ers"] |
计算技巧
1 | # 向下取整 |
注意浮点数
1 | print .3/.1 |
数值比较
1 | x = 2 |
两个列表同时迭代
1 | nfc = ["Packers", "49ers"] |
带索引的列表迭代
1 | teams = ["Packers", "49ers", "Ravens", "Patriots"] |
列表推导
已知一个列表,筛选出偶数列表方法:
1 | numbers = [1,2,3,4,5,6] |
用下面的代替
1 | numbers = [1,2,3,4,5,6] |
字典推导
1 | colors = ["red","black","blue","green"] |
初始化列表的值
1 | items = [0]*3 |
将列表转换成字符串
1 | colors = ["red","black","blue","green"] |
从字典中获取元素
虽然用try/except处理也可以比配不到的情况,但这样不是很优雅
1 | data = {'user': 1, 'name': 'Max', 'three': 4} |
这样做更好
1 | data = {'user': 1, 'name': 'Max', 'three': 4} |
获取子列表
1 | x = [1,2,3,4,5,6] |
60个字符解决FizzBuzz
前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:
写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。
这里有一个简短的方法解决这个问题:
1 | for x in range(1,101):print"Fizz"[x%3*4:]+"Buzz"[x%5*4:]or x |
集合
用到Counter
库
1 | from collections import Counter |
迭代工具
和collections
库一样,还有一个库叫itertools
1 | from itertools import combinations |
False == True
在python中,True
和False
是全局变量,因此
1 | False = True |