【问题标题】:Appending a list through if condition in python通过python中的if条件附加列表
【发布时间】:2019-03-26 01:59:48
【问题描述】:

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

在 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==5时不要通过n+1

这是唯一的解决方案吗?将 n==5 单独附加到一个列表中,然后将 new 和单独的列表相加?

【问题讨论】:

  • new.append(n) 而不是continue?
  • new = [1, 2, 3, 4, 5, 5]?
  • @StephenRauch 我想使用 for 循环得到结果

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


【解决方案1】:

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

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

【讨论】:

  • 对,使用 append 因为它是按顺序追加的!有道理。谢谢!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您似乎没有理解“继续”的意思。 Python 关键字 'continue' 意味着你在 if 条件下什么都不做,所以基本上你告诉程序在 n == 5 时“什么也不做”,如果 n 不是 5,你就做一些操作。这就是为什么你得到你原来的结果。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-04-22
      • 2018-01-18
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 2022-01-27
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多