2016-09-20 5 views
0

リストをコピーして1つのリストからアイテムを削除しようとすると、それは他のリストでも消えます。あなたは私に理由を与えることができますか?そして、どのように1つのリストから削除するのですか?list.remove(x)は、このリストよりも多くのオブジェクトを削除します。

letter_list = ["A","B","C"] 
same_letter_list = letter_list 

print same_letter_list 
print letter_list 

same_letter_list.remove("B") 

print same_letter_list 
print letter_list 

私の出力は、次のとおりです。

['A', 'B', 'C'] 
['A', 'B', 'C'] 
['A', 'C'] 
['A', 'C'] 

私はプログラミングに新たなんです。 ご協力いただきありがとうございます!

+0

'same_letter_list = letter_list'' same_letter_list'参照する*同じ:このようにリスト*。ここには2つの名前しかないリストが1つしかありません。 –

+1

これはこの他の質問とよく似ています:http://stackoverflow.com/questions/8744113/python-list-by-value-not-by-reference –

+1

Pythonを初めて使い慣れた人は、なぜPython 2 ? Python 3から[python.org自体](https()のように[Stack Overflow Pythonコミュニティ](http://sopython.com)は圧倒的に[推薦](http://sopython.com/wiki/What_tutorial_should_I_read%3F) ://wiki.python.org/moin/Python2 orPython3)。バージョン3は言語の現在と将来、2は過去です。最初に学習2では、3を学ぶときに修正する必要のある多くの悪い習慣を拾います(最終的にやる必要があります)ので、まず3から始めてから、2後で。 – MattDMo

答えて

0

リストは同じです。他の変数にスライスして、異なるようにすることができます。

letter_list = ["A","B","C"] 
same_letter_list = letter_list[:] 

print same_letter_list 
print letter_list 

same_letter_list.remove("B") 

print same_letter_list 
print letter_list 
0

same_letter_listletter_listは同じリストです。そしてそれは同じメモリを参照します。

あなたがそれらを分離したい場合は、コピーを作成

same_letter_list = letter_list.copy() 
0

基本的にletter_listとsame_letter_listが

>>> letter_list = ["A","B","C"] 
... same_letter_list = letter_list 
... 
>>> id(same_letter_list) 
1316298424 
>>> id(letter_list) 
1316298424 

同じアドレスです、それは新しいアドレスを与える

diff_letter_list = letter_list[:] 
id(diff_letter_list) 
1307621296 
関連する問題