my_list = [1, 2]
def f():
print my_list
yield 11
print my_list
yield 22
print my_list
my_list[:] = f()
print "finally ",
print my_list
出力:
[1, 2]
[1, 2]
[1, 2]
finally [11, 22]
私が期待していたのは:
[1, 2]
[11, 2]
[11, 22]
finally [11, 22]
スライスの割り当てが適切に行われていると誰かが言ったことがあります。明らかにそうではありません。それを達成するエレガントな方法はありますか?