2013年2月18日月曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIII部(ステートメント)の13章(while ループと for ループ)練習問題4.を解いてみる。

その他参考書籍

4.

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

# for ループとリスト内包表記はともに反復処理のためにある
# リスト内包表記の方がコードが短くかつ速い可能性もある
#(Pythonのコードレベルではなくインタプリタ内部でCのレベルで行われるため)
# リストを作成するという同じ事をしてみる。ついでに速度の計測も

a = []
for x in range(10):
    a.append( x ** 2 )

b = [x ** 2 for x in range(10)]

print(a, b, sep="\n")

# 速度の計測
import time

n = 10 ** 6
start  = time.time()
a = []
for x in range(n):
    a.append(x)
print("for loop: {0}秒".format(time.time() - start))
start = time.time()
b = [x for x in range(n)]
print("リスト内包表記: {0}秒".format(time.time() - start))

入出力結果(Terminal)

$ ./sample.py
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
for loop: 0.2684509754180908秒
リスト内包表記: 0.0997929573059082秒
$

0 コメント:

コメントを投稿