通过python中的if条件附加列表

时间:2018-10-22 02:49:36

标签: python python-3.x list for-loop append

这可能是一个非常基本的问题,但我意识到我不了解。

在for循环中添加新内容时,如何提出条件并仍然添加项目?

例如:

alist = [0,1,2,3,4,5]
new = []
for n in alist:
    if n == 5:
        continue
    else:
        new.append(n+1)

print(new) 

得到我

[1, 2, 3, 4, 5]

我如何获得

[1, 2, 3, 4, 5, 5] # 4 is incremented, 5 is added 'as is'

本质上,我想告诉python在n+1时不要通过n==5

这是唯一的解决方案吗?在列表中分别添加n == 5,然后将new和单独的列表求和?

3 个答案:

答案 0 :(得分:1)

为什么不只是附加5而不使用continue,还有其他条件吗?

for n in alist:
    if n == 5:
        new.append(n)
    else:
        new.append(n+1)

答案 1 :(得分:1)

您可以使用布尔True为1而False为0的事实,并结合以下列表理解:

代码:

[x + int(i != 5) for i, x in enumerate(alist)]

测试代码:

alist = [0, 1, 2, 3, 4, 5]
new = [x + int(i != 5) for i, x in enumerate(alist)]
print(new)

结果:

[1, 2, 3, 4, 5, 5]

答案 2 :(得分:0)

似乎您没有理解“继续”的意义。 Python关键字“ continue”表示在条件为条件时您什么也不做,因此基本上您可以在n == 5时告诉程序“什么也不做”,如果n不为5,则可以执行一些操作。这就是为什么您得到原始结果。希望对您有所帮助。