0
def troca_valor(lista, i1, i2):
a = lista[:]
tam = len(lista)
if i1 or i2 > tam:
return None
else:
a[i1] = lista[i2]
a[i2] = lista[i1]
return a
assert troca_valor([0,1,2,3],2,0) == [2,1,0,3]
assert troca_valor(["a", "e", "i", "o", "u"],1,3) == ["a", "o", "i","e", "u"]
assert troca_valor([0,1,2,3],7,3) == None
assert troca_valor([0,1,2,3],2,5) == None
我在名單的變化而變化的值一個位置每另一個,像斷言,我試圖做這樣的事情的代碼,但顯示了斷言錯誤兩個值。這是我的第一個問題,我使用搜索,但沒有找到類似的問題。對不起我的英語不好。Python的 - 改變一個列表
仔細看'i1或i2> tam'; Python沒有看到i1大於tam或者i2大於tam;它認爲'i1'是真的或'i2> tam'。在你的第一個斷言中,'i1'是2,這意味着它是一個真正的值。 –
謝謝,對不起一個愚蠢的問題,但我真的不知道。 – caslu