我正在实现一个函数,该函数可以减少列表模 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] 上调用这个函数时,我得到:
L = [1, 2, 0, 4, 2, 6, 1, 8, 0]
为什么是这样?我正在努力弄清楚,但我很着急。谢谢。
当你写的时候for i in l,您正在访问列表的每个元素,而不是索引。相反,你应该写
for i in l
for i in range(len(l)):
您还可以通过列表理解来解决这个问题:
return [item % 3 for item in l]