首页 > 解决方案 > 为什么这个函数会产生 (0,0,0,0,0)

问题描述

我有这个功能

my_list = [1,2,3,4,5]
my_new_list = []
for num in my_list:
    my_new_list.append(num-my_list[num-1])
print(my_new_list)

我不明白 [num-1] 在索引返回 (0,0,0,0,) 方面做了什么,有人可以解释一下,因为我无法理解为什么会出现这种情况。

标签: pythonpython-3.x

解决方案


结果是可以理解的,在您的循环中,从my_list中减去my_num[num-1] ,其内容为 1,2,3,4,5。

当 num 为my_list[0]==1时,第一次迭代,my_list[1-1] = my_list[0]的值。所以它实际上与减去列表中的各个元素本身相同,从而得到 [0,0,0,0,0]。

希望这有助于您理解行为:)。


推荐阅读