这可能是一个非常基本的问题,但我意识到我不了解。
在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和单独的列表求和?
答案 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,则可以执行一些操作。这就是为什么您得到原始结果。希望对您有所帮助。