我需要更改輸入行中索引最高的數字和索引最低的數字之間的數字,但彈出錯誤
錯誤:
list2[0], list2[len1] = list2[len1], list2[0]
IndexError: list index out of range
代碼:
list1 = input("Введите список: ")
list2 = list1.split()
len1 = int(len(list2))
list2[0], list2[len1] = list2[len1], list2[0]
print(list2)
如何解決這個問題?
uj5u.com熱心網友回復:
串列從 0 開始索引。如果您的串列包含 4 個元素,則長度為 4,但最后一個索引為 3 (4 - 1)。
list1 = input("Введите список: ")
list2 = list1.split()
len1 = int(len(list2)) - 1 # <- HERE
list2[0], list2[len1] = list2[len1], list2[0]
print(list2)
uj5u.com熱心網友回復:
使用 index[-1]而不是len(list2)-1獲取最后一個元素:
list1 = input("Введите список: ").split()
list1[0], list1[-1] = list1[-1], list1[0]
print(list1)
uj5u.com熱心網友回復:
索引始終為 0 - length-1。
因此,如果您按長度取串列值,它將超出上述索引范圍。
我想指出的另一件事是你的變數名真的很混亂。這是一個很小的代碼,但是對于更大的專案,當您必須除錯它時,這對您來說將是一個巨大的痛苦。
但是,這應該有效
ip = input("Введите список: ")
list1 = ip.split(" ")
len1 = int(len(list1))
list1[0], list1[len1-1] = list1[len1-1], list1[0]
print(list1)
uj5u.com熱心網友回復:
正如錯誤所述,“list2[len1]”的索引超出范圍。
由于python中的len()方法回傳串列的實際長度,而串列的索引從第0個位置開始
對于上面的代碼,您可以嘗試這樣做:
list2[0], list2[len1-1] = list2[len1-1], list2[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/340161.html
上一篇:如何在映射串列中使用逗號代替逗號
