2: 2016-12-27 (火) 12:04:26 njf[4] [5] [6] | 現: 2017-09-04 (月) 13:23:54 njf[4] [7] [8] | ||
---|---|---|---|
Line 122: | Line 122: | ||
l = [1,2,3,4] | l = [1,2,3,4] | ||
+ | |||
print len(l) | print len(l) | ||
Line 152: | Line 152: | ||
print l,l[i] | print l,l[i] | ||
のように書きたくなりますが、enumerateの方がすっきりします。 | のように書きたくなりますが、enumerateの方がすっきりします。 | ||
+ | |||
+ | **リストのコピー [#te359637] | ||
+ | |||
+ | リストをコピーするには、「list」を使います。 | ||
+ | |||
+ | l = [1,2,3] | ||
+ | l_copy = list(l) | ||
+ | print l_copy | ||
+ | |||
+ | 結果 | ||
+ | [1, 2, 3] | ||
+ | |||
+ | ただし、要素がリストやクラスのインスタンスなどの時には、実体ではなく参照がコピーされるので注意が必要です。 | ||
**リストの並べ替え [#k95a4ef4] | **リストの並べ替え [#k95a4ef4] | ||
Line 185: | Line 198: | ||
「cmp」引数に関数を指定することで複雑なルールの並べ替えも可能です。 | 「cmp」引数に関数を指定することで複雑なルールの並べ替えも可能です。 | ||
- | 関数は2つの引数をとり、実際には要素が代入されます。 | + | 関数は2つの引数をとり、実際に並べ替えを行う時にはここに要素が代入されます。 |
その戻り値が正なら最初の引数の要素が大きいと判断して昇順に並べます。 | その戻り値が正なら最初の引数の要素が大きいと判断して昇順に並べます。 | ||
以下の例では文字列の2文字目を整数にした場合の昇順に並べ替えます。 | 以下の例では文字列の2文字目を整数にした場合の昇順に並べ替えます。 | ||
l = ["123","514","792"] | l = ["123","514","792"] | ||
+ | |||
l.sort(cmp = lambda x,y : int(x[1]) - int(y[2]) ) | l.sort(cmp = lambda x,y : int(x[1]) - int(y[2]) ) | ||
+ | |||
print l | print l | ||
(This host) = https://njf.jp