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

Posted

技术标签:

【中文标题】通过python中的if条件附加列表【英文标题】:Appending a list through if condition in python 【发布时间】: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 循环得到结果 【参考方案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,你就做一些操作。这就是为什么你得到你原来的结果。希望对您有所帮助。

【讨论】:

以上是关于通过python中的if条件附加列表的主要内容,如果未能解决你的问题,请参考以下文章

如何将python中的两个列表与if loc条件进行比较

将项目附加到列表列表中的指定列表(Python)[重复]

无法将条件结果附加到新列表

Python ❀ 条件判断语句

Python ❀ 条件判断语句

python中的if循环怎么样?