我剛開始學習 Python 并且我被困在這個問題上?;旧衔蚁胝页銎鏀邓饕栔械募犹枴_@是我的代碼。def odd_ones(lst): total = [] for i in lst: if i % 2 == 1: total.append(i) return totalprint(odd_ones([1,2,3,4,5,6,7,8])) 輸出是[1, 3, 5, 7] 代替 [2, 4, 6, 8]有人可以幫我嗎?
3 回答

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
輸出是正確的。您迭代值列表而不是它的索引。條件i % 2 == 1給出以下:
1 % 2 = 1 (true)
2 % 2 = 0 (false)
3 % 2 = 1 (true)
4 % 2 = 0 (false)
5 % 2 = 1 (true)
6 % 2 = 0 (false)
7 % 2 = 1 (true)
8 % 2 = 0 (false)
所以輸出是 (1,3,5,7)

滄海一幻覺
TA貢獻1824條經驗 獲得超5個贊
如果您不想將奇數放入數組中,則需要更改條件,因此代碼最像這樣:
def odd_ones(lst):
total = []
for i in lst:
if i % 2 == 0:
total.append(i)
return total
print(odd_ones([1,2,3,4,5,6,7,8]))
輸出:[2, 4, 6, 8]

波斯汪
TA貢獻1811條經驗 獲得超4個贊
你想找到奇數 inedx ,但你真正要做的是找到奇數元素
for i in lst: #(i ---->the element in lst)
if i % 2 == 1:
所以你應該試試這個
for i in range(len(lst)): #( i ---> the index of lst)
if i % 2 == 1:
添加回答
舉報
0/150
提交
取消