Python 为什么这个函数会产生(0,0,0,0)
我有这个功能Python 为什么这个函数会产生(0,0,0,0),python,python-3.x,Python,Python 3.x,我有这个功能 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方面做了什么, 有人能解释一下这一点吗,因为我不明白为什么会出现这种结果。当循环处理列表的第一个元素时,num是1,所以num-1是0。然后将其用作列表中的索引,my_list[0]为1。减去1-
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方面做了什么,
有人能解释一下这一点吗,因为我不明白为什么会出现这种结果。当循环处理列表的第一个元素时,num是1,所以num-1是0。然后将其用作列表中的索引,my_list[0]为1。减去1-1返回0,这会被推到我的新列表中
同样的情况也会发生在每个元素上,因为每个元素的值都是其索引+1,所以每次通过循环都会得到0。my_list[num-1]从列表中获取第一个元素,即1
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(num,my_list[num-1])
print(my_new_list)
您可以运行此代码,输出为:
1 1
2 2
3 3
4 4
5 5
[0,0,0,0,0,0]
至于my_列表中的num,则从列表中选取每个元素。当执行此循环时,第一次给出:
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(num,my_list[num-1])
print(my_new_list)
我的新列表。附录1-我的新列表[1-1]等于我的新列表。附录1-我的新列表[0]等于我的新列表。附录1-1
第二次:
我的新列表。附录2-我的新列表[2-1]等于我的新列表。附录2-我的新列表[1]等于我的新列表。附录2-2
第三次:
我的新列表。附录3-我的新列表[3-1]等于我的新列表。附录3-我的新列表[2]等于我的新列表。附录3-3
以此类推……结果是可以理解的,在您的循环中,my_num[num-1]从my_列表中减去,其内容为1,2,3,4,5 当num是my_list[0]==1时,第一次迭代,my_list[1-1]=my_list[0]的值。因此,它实际上等同于减去列表中的各个元素,从而得到[0,0,0,0,0]
希望这有助于您理解以下行为: 只是用调试器运行代码?检查变量?你使用开发控制台了吗?我同意@trincot。这是一个非常明显的问题,您不必询问是否会在每个循环中使用dev consolead和print语句,以便查看发生了什么。