開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIV部(関数)17章(関数に関する高度なテクニック)練習問題1を解いてみる。
1.
リスト内包表記の角括弧を丸括弧に変えると、ジェネレータ式になり、リストではなくジェネレータオブジェクトを返す。リストは一度に要素を全て生成、ジェネレータ式はその反復の都度要素を生成するのでリストの方が高速、ジェネレータの方がメモり節約になる。
コード(TextWrangler)
sample.py
#!/usr/bin/env python #encoding: utf-8 l = [pow(x,2) for x in range(10)] g = (pow(x,2) for x in range(10)) for x in (l,g): print(type(x)) for y in x: print(y,end=' ') print()
入出力結果(Terminal)
$ ./sample.py <class 'list'> 0 1 4 9 16 25 36 49 64 81 <class 'generator'> 0 1 4 9 16 25 36 49 64 81 $
0 コメント:
コメントを投稿