Python > list > コピー方法3つ > .copy() / list() / [:] > Python3では動く / Python2では.copy()でエラー > 全てshallow copyでした


@ Introducing Python: Modern Computing in Simple Packages by Bill Lubanovic
(No. 1424 / 12833)

listのコピーの方法3つあるようだ。

試してみた。

a = [ 'I am clone ' ]
b = a.copy()
c = list(a)
d = a[:]

a = [ 'I am original']
print(a)
print(b)
print(c)
print(d)

Python 3

結果
['I am original']
['I am clone ']
['I am clone ']
['I am clone ']

Python 2

結果
Traceback (most recent call last):
  File "prog.py", line 2, in <module>
AttributeError: 'list' object has no attribute 'copy'

docs

Python 3
https://docs.python.org/3.6/tutorial/datastructures.html

Python 2
https://docs.python.org/2/tutorial/datastructures.html

Python 3にはlist.copy()の記述があり、Python 2にはない。

追加で学習した事項

@shiracamus さんにコメントいただいたように、上記のコピーはすべてshallow copyでした。