home changes contents help options

246:オブジェクトを配列に変換する

(Ruby の配列に相当する Python のクラスはリストです。)

イテレート可能であるオブジェクトは list を用いてリストに変換することができます。

>>> list((0, 1, 2, 3)) # タプル
[0, 1, 2, 3]
>>>
>>> list('abcd') # 文字列
['a', 'b', 'c', 'd']
>>>
>>> list({'a': 'A', 'b': 'B', 'c': 'C'}) # 辞書
['a', 'c', 'b']
>>>
>>> list(set(['a', 'b', 'c'])) # 集合
['a', 'c', 'b']
>>>
>>> list(xrange(1, 4)) # ジェネレータ
[1, 2, 3]
>>>
>>> list(ord(c) for c in u'abc') # ジェネレータ式によるジェネレータ
[97, 98, 99]

リストを list に渡すと、リストの浅いコピーを作ります。

>>> a = [0, 1, 2, [3, 4]]
>>> b = list(a)
>>> a is b
False
>>> a == b
True
>>> a[0] = 'zero'
>>> a, b
(['zero', 1, 2, [3, 4]], [0, 1, 2, [3, 4]])
>>> a[3][0] = 'three'
>>> a, b
(['zero', 1, 2, ['three', 4]], [0, 1, 2, ['three', 4]])