我正在尝试覆盖现有列表并跳过列表中value[i] = -1
的任何索引,并将该值保留在正确的索引处。
一个问题是last_item值似乎环绕到列表的末尾,有没有办法防止这种情况?否则,有更好的方法吗?所有的逻辑看起来都太笨拙了。
数据如下:
-1
1
2
3
-1
1
2
3
我试图让它看起来像这样:
-1
1
2
3
-1
4
5...
修改 我修改了Alex在下面发布的代码,它现在运行得很好。这是我使用的代码:
count = 1
for i range(len(my_list)):
if my_list[i] == -1:
new_list.append(-1)
else:
my_list[i] = count
count += 1
new_list.append(my_list[i])
答案 0 :(得分:1)
在开始编写此代码之前,您可能希望一般地了解python列表,python循环和迭代/索引。以下是一些您可能会觉得有用的页面
另一个注意事项,仅仅因为您设置的变量等于列表中的元素,如果更改变量,则不能指望该列表中的元素会发生变化。这就像说,我打算制作一个像这个其他cookie一样的外观和味道的cookie副本。然后,如果你吃第二个饼干(你制作的那个),第一个饼干仍然存在,直到你进去并实际吃掉那个饼干。
迭代变量也一样,i。当你检查i == - 1时,你真的只是说“这是我循环中的第一个循环吗?”因为你从-1开始循环。浏览这些循环文章时,这一切都应该更有意义。
很棒,输入/输出数据有很大帮助。现在更有意义了。
这个怎么样:
count = 1
for i range(len(my_list)):
if my_list[i] = -1:
continue
else:
my_list[i] = count
count++
my_list
是输入列表
我不是100%理解这里的问题,但我想我知道。根据您提供的输入,此代码应该为您提供所需的输出。 HTH