对python列表中的所有元素应用modulo并获得一些正确的错误元素

2024-06-16 11:15:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在实现一个函数,它可以减少一个表模3的所有元素。以下是我所拥有的:

def reduceMod3(l):
    for i in l:
        l[i] = l[i] % 3
    return l

当我对L=[1,2,3,4,5,6,7,8,9]调用这个函数时,我得到:

^{pr2}$

为什么会这样?我在想办法,但我赶时间。谢谢。在


Tags: 函数in元素forreturndef办法pr2
2条回答

当您编写for i in l时,您访问的是列表的每个元素,而不是索引。相反,你应该写信

for i in range(len(l)):

您也可以通过列表理解来解决此问题:

^{pr2}$

你的列表赋值被关闭,l[i]不是说'等于i的值',而是在列表l中的位置i。您也不希望在迭代列表时修改它。在

我想这是你想要的。创建传入列表的mod3项的新列表。在

def reduceMod3(l):
    return [i % 3 for i in l]

相关问题 更多 >