0

我正在尝试覆盖现有列表并跳过列表中的任何索引 where 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])
4

1 回答 1

1

在开始编写此代码之前,您可能想复习一下 Python 列表、Python 循环和迭代/索引。以下是一些您可能会觉得有用的页面

Python 列表简介

Python 中的 For 循环

在 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%理解这里的问题,但我想我知道。鉴于您提供的输入,此代码应该为您提供所需的输出。高温高压

于 2013-11-13T21:53:35.170 回答