这是一个系列文章,主要分享 python 的使用建议和技巧,每次分享 3 点,希望你能有所收获.
1 如何在 if 语句中检测多个条件
不推荐方式
推荐方式
flag1 = 1
flag2 = 0
flag3 = 0
if flag1 == 1 or flag2 == 1 or flag3 == 1:
print 'ok'
可以看到,前一种方式重复代码太多,不推荐.后一种写法更简洁,易读.另外,其实也可以通过 any 函数实现,如下:
flag1 = 1
flag2 = 0
flag3 = 0
if 1 in (flag1, flag2, flag3):
print 'ok'
2 如何从 list 中随机采样元素
if any((flag1, flag2, flag3)):
print 'ok'
推荐方式
这里是从 100 个元素中,随机采样 20 个元素.可以看到,借助 random 模块的 sample 函数可以很轻易实现采样功能.python 的 random 模块很有意思,大家感兴趣可以看看,能实现很多有趣的功能.比如可以轻易实现 "洗牌" 功能:
import random
all_data = [num for num in range(100)]
sample_data = random.sample(all_data, 20)
print sample_data
# [71, 25, 58, 79, 70, 69, 93, 29, 11, 30, 40, 81, 12, 48, 91, 21, 83, 42, 38, 31]
3 如何测试函数运行时间
import random
order_list = range(10)
print order_list
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
random.shuffle(order_list)
print order_list
# [3, 5, 9, 0, 8, 7, 1, 2, 6, 4]
不推荐方式
推荐方式
import time
def func1():
time.sleep(2)
begin_time = time.time()
func1()
passed_time = time.time() - begin_time
print passed_time
# 2.00099992752
借助 python 的 timeit 模块,可以很轻易的测试出函数运行时间.在不知道 timeit 模块之前,我就是用前一种方式测试函数运行时间的,别笑.
import time
from timeit import timeit
def func1():
time.sleep(2)
print timeit(stmt="func1()",
setup="from __main__ import func1",
number=1)
# 2.00122451254
来源: http://www.jianshu.com/p/84415db5f8cc