列表元素上的索引输出不正确 - Python

我刚开始学习 Python 并且我被困在这个问题上。


基本上我想找出奇数索引号中的加号。


这是我的代码。


def odd_ones(lst):

    total = []

    for i in lst:

        if i % 2 == 1:

            total.append(i)

    return total


print(odd_ones([1,2,3,4,5,6,7,8])) 

输出是


[1, 3, 5, 7] 代替 [2, 4, 6, 8]


有人可以帮我吗?


繁星coding
浏览 229回答 3
3回答

素胚勾勒不出你

输出是正确的。您迭代值列表而不是它的索引。条件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)

沧海一幻觉

如果您不想将奇数放入数组中,则需要更改条件,因此代码最像这样:def odd_ones(lst):    total = []    for i in lst:        if i % 2 == 0:            total.append(i)    return totalprint(odd_ones([1,2,3,4,5,6,7,8]))输出:[2, 4, 6, 8]

波斯汪

你想找到奇数 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:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python