開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- プログラミング言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIV部(関数)の17章(関数に関する高度なテクニック)練習問題1.を解いてみる。
その他参考書籍
1.
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- import time # 角括弧はリスト内包表記 a = [x ** 2 for x in range(1000000)] # 角括弧を丸括弧に変えるとジェネレーターを作成 # ジェネレーターは必要になったらそのつど要素を生成するので # リストと比較してメモリーの節約に鳴る # 短所としてはリストより速度が落ちる b = (x ** 2 for x in range(1000000)) for x in [a,b]: print(type(x)) #速度を計測してみる start = time.time() for x in a: pass t = time.time() - start print("リスト: {0}秒".format(t)) start = time.time() for x in b:pass t = time.time() - start print("ジェネレーター: {0}秒".format(t))
入出力結果(Terminal)
$ ./sample.py <class 'list'> <class 'generator'> リスト: 0.06931400299072266秒 ジェネレーター: 1.2974469661712646秒 $
0 コメント:
コメントを投稿