python使用提案とテクニックの共有(二)


これは一連の文章で、主にpythonの使用提案と技巧を共有して、毎回3点を共有して、収穫があることを望みます。
1どのようにif文で複数の条件を検出しますか?
おすすめしない方法

flag1 = 1
flag2 = 0
flag3 = 0

if flag1 == 1 or flag2 == 1 or flag3 == 1:
print 'ok'
おすすめの方法

flag1 = 1
flag2 = 0
flag3 = 0

if 1 in (flag1, flag2, flag3):
print 'ok'

前の方法はコードが多すぎておすすめできません。後の書き方はもっと簡潔で読みやすいです。また、実際にはany関数でも実現できます。

if any((flag1, flag2, flag3)):
print 'ok'
2どのようにリストからランダムに要素をサンプリングしますか?

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]
ここでは100個の要素から20個の要素をランダムにサンプリングする。ランドムモジュールのsample関数によって容易にサンプリング機能が実現できることが見られます。pythonのランドムモジュールはとても面白いです。興味を持って見てもいいです。多くの面白い機能を実現できます。例えば「シャッフル」機能が簡単に実現できます。

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]
3どのように関数の運転時間をテストしますか?
おすすめしない方法

import time


def func1():
time.sleep(2)


begin_time = time.time()
func1()
passed_time = time.time() - begin_time
print passed_time
# 2.00099992752
おすすめの方法

import time
from timeit import timeit


def func1():
time.sleep(2)


print timeit(stmt="func1()",
setup="from __main__ import func1",
number=1)
# 2.00122451254
pythonのtimeitモジュールにより、関数の動作時間を簡単に測定できます。timeitモジュールを知らない前に、前の方法で関数の運行時間をテストします。笑わないでください。
以上はpythonを使って提案と技巧を使って(2)の詳しい内容を分かち合って、更にpythonに関して提案と技巧の資料に関して私達のその他の関連している文章に注意して下さい!