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

新手上路,请多包涵

这可能是一个非常基本的问题,但我意识到我不理解某些东西。

在 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 分别附加到列表中,然后对新列表和单独的列表求和?

原文由 halo09876 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 784
2 个回答

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

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

原文由 Cypherius 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以将布尔值 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]

原文由 Stephen Rauch 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题