通过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条件附加列表的主要内容,如果未能解决你的问题,请参考以下文章