2012年11月11日日曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のIII部(ステートメント)10章(Pythonの代入ステートメント、式ステートメント、print()関数(python3.xから))の練習問題3を解いてみる。

その他参考書籍

3.

リストのsortメソッドは、元のリストをソートされたリストにする(上書きする)して、戻り値はNoneとなる。リストをソートするにはL.sort()と元のリストを上書きするか、、上書きせずにソートされたリストを戻り値と返して代入したい場合はビルトインメソッドのsorted(L)を使えばいい。

コード(TextWrangler)

sample.py

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

L = [5,1,4,2,3]
L = L.sort()
print(L)
L = [5,1,4,2,3]
L.sort()
print(L)
L = [5,1,4,2,3]
M = sorted(L)
print(L, M, sep="\n")

入出力結果(Terminal)

$ ./sample.py
None
[1, 2, 3, 4, 5]
[5, 1, 4, 2, 3]
[1, 2, 3, 4, 5]
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var result = "";
var ary = [5,1,4,2,3];
ary = ary.sort();
result += ary + "\n";
ary = [5,1,4,2,3];
ary.sort();
result += ary + "\n";
ary = [5,1,4,2,3];
ary1 = ary.sort();
result += ary + "\n" + ary1 + "\n";

// pythonのsortedに相当する関数を作成
function sorted(o){
  var result = o.slice();
  result.sort();
  return result;
}

ary = [5,1,4,2,3];
sorted_ary = sorted(ary);
result += ary + "\n" + sorted_ary + "\n";

$('#pre0').text(result);


JavaScriptでは、array.sort()で配列が上書きされるのはpythonと同じだけど、戻り値はnullではなく、配列への参照が返されるみたい。(JavaScriptクイックリファレンスより)

0 コメント:

コメントを投稿