- 使用join()连接字符串.
- 尽量使用局部变量
- 为无限循环使用 "while 1"
- 检查一个元素是在dicitonary或set是否存在 这在Python中非常快的。这是因为dict和set使用哈希表来实现。查找效率可以达到O(1)。循环之外能做的事不要放在循环内,比如下面的优化可以快一倍
- 对于and,应该把满足条件少的放在前面,对于or,把满足条件多的放在前面。
-
使用if is
a = range(10000)
%timeit -n 100 [i for i in a if i == True]
%timeit -n 100 [i for i in a if i is True]
100 loops, best of 3: 531 µs per loop
100 loops, best of 3: 362 µs per loop
- 使用级联比较x < y < z
- while 1 比 while True 更快(10倍)
- 一个for语句中迭代多个可迭代对象
x=['a','b','c'] -
y=['1','2','3','4']
#并行迭代
for a,b in zip(x,y):
print(a,b)
- 初始化一个由许多重复值组成的数组
print([0]*10) - 颠倒字符串
print(name[::-1]) - 列表推导式
a=[1,2,3] -
b=[num*2 for num in a]
- 优先级关系:or<and<not
- 对字典进行迭代
a={'s':1,'d':2,'c':3} -
for i,j in a.items():
print('{key}:{value}'.format(key=i,value=j))
- 初始化空的容器
a_list=list() -
print(a_list)
- 对数组内元素值和索引同时进行迭代
a=['a','c','d'] -
for i,j in enumerate(a):
print(i,j)
- 简化if语句
if m in [1, 2, 3, 4]: -
# do not use following way
if m==1 or m==2 or m==3 or m==4:
- # 翻转字符串
print("Test Python"[::-1]) - # 用切片翻转列表
print([1, 3, 5][::-1]) - [random.randint(1, 6) for _ in range(3)]
Python高效编程的习惯(建议)
最新推荐文章于 2022-04-20 09:54:35 发布