迭代列表,保留一些实体

时间:2013-11-13 21:38:49

标签: python list sanity-check

我正在尝试覆盖现有列表并跳过列表中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])

1 个答案:

答案 0 :(得分:1)

在开始编写此代码之前,您可能希望一般地了解python列表,python循环和迭代/索引。以下是一些您可能会觉得有用的页面

An Intro to Python Lists

For Loops in Python

Looping with Lists in 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