以下のコードを実行した結果はどうなりますか?
def insert(lst, em):
# insert em in sequence lst
i = 0
while em > lst[i]:
i = i+1
if i == len(lst):
break
lst[:] = lst[:i] + [em] + lst[i:]
def choose(lst1, lst2):
# pick list
if lst1[0] < lst2[0]:
return lst1
else:
return lst2
l1 = [4]
l2 = [6]
insert(l2,5)
insert(l1,5)
l3 = choose(l1,l2)
print l1,l3############
insert(l3,1)
print l1,l2,l3
>>> ================================ RESTART ================================
>>>
[1, 4, 5] [5, 6] [1, 4, 5]
は、私は、インサート(l3,1)が呼び出される前に、私が得ることを知っているL1 = L3 = [5] をそのL2 = [5,6]と同意その挿入した後(L3,1 )はL3 = [1 4 5]と呼ばれますが、なぜL1も変わるのです。誰も私のためにこれを明確にすることができますか?ここでPythonの割り当てとその動作
L1とL3は同じリストです。 – kindall