リストのコピーをPythonの関数に渡そうとしているので、古いリストの情報を失うことなく新しいリストをポップして追加することができます。しかし、私は問題を抱えています。リストのコピーをPythonの関数に渡す
は、ここに私のコード第二の機能は、新しい、古いリストから要素を移動し、古いリストを空にすることなく、それぞれのための簡単な声明を印刷するようになっている
def show_magicians(magicians):
for magician in magicians:
print (magician.title())
return magicians
def make_great(magicians):
for magician in magicians:
new_magician = magicians.pop()
new_magicians.append(new_magician)
print (new_magician.title() + ", is a great magician!!")
return magicians
new_magicians = []
magicians = ['merlin', 'blaine', 'agaybi', 'copperfield']
show_magicians(magicians)
make_great(magicians[:])
print ('\n' , magicians)
print ('\n' , new_magicians)
です。問題は、唯一の要素が印刷され、同じ要素が唯一の要素であるということです。
私は間違っていますか?
'make_great'によって作成された新しいリストを割り当てないで、' new_magicians = make_great(magicians [:]) 'を試してください。 – jonrsharpe
@RobertRいいえ、それは問題ではありません - OP *は明示的にスライス表記 '[:]'を使って浅いコピーを渡します。問題はそれが 'new_magicians'とは無関係なことです! – jonrsharpe
編集していただきありがとうございますJon Sharpe。これは私の最初の質問です。 –