2013年3月12日火曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIV部(関数)のまとめ演習9.(リスト内包表記)を解いてみる。

その他参考書籍

9.(リスト内包表記)

コード(BBEdit)

sample.py

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

import math

def p(l):
    print(l)
    for x in l:
        print(x)
l = [2, 4, 9, 16, 25]
print("for loop")
l1 = []
for x in l:
    l1.append(math.sqrt(x))
p(l1)

print("map")
// map関数はpython3.xではmapオブジェクト、python2.7ではリストを返す事に注意
l2 = map(lambda x:math.sqrt(x), l)
p(l2)
print("リスト内包表記")
l3 = [math.sqrt(x) for x in l]
print(l3)

入出力結果(Terminal)

$ ./sample.py
for loop
[1.4142135623730951, 2.0, 3.0, 4.0, 5.0]
1.4142135623730951
2.0
3.0
4.0
5.0
map
<map object at 0x10de10110>
1.4142135623730951
2.0
3.0
4.0
5.0
リスト内包表記
[1.4142135623730951, 2.0, 3.0, 4.0, 5.0]
$ python2.7 sample.py
for loop
[1.4142135623730951, 2.0, 3.0, 4.0, 5.0]
1.41421356237
2.0
3.0
4.0
5.0
map
[1.4142135623730951, 2.0, 3.0, 4.0, 5.0]
1.41421356237
2.0
3.0
4.0
5.0
リスト内包表記
[1.4142135623730951, 2.0, 3.0, 4.0, 5.0]
$

ちなみにJavaScriptの場合。

コード(BBEdit)

var a = [2, 4, 9, 16, 25],
    b = a.map(function ( x ) {
        return Math.sqrt(x);
    }),
    c = [],
    d = [],
    result = "",
    i, max;
for (i = 0, max = a.length; i < max; i += 1) {
    c.push(Math.sqrt(a[i]));
}
a.forEach(function ( x ) {
    d.push(Math.sqrt(x));
});
result += ["for loop\n" + b.join("\n"),
    "map\n" + c.join("\n"),
    "forEach\n" + d.join("\n")].join("\n");
$('#pre0').text(result);









						

0 コメント:

コメントを投稿