如何使for循环中的if只运行一次?

twh*_*ale 4 python python-3.x

我试图根据条件将两个列表中的项目放在一起,以创建第三个列表作为输出。即使我是新手,这也相对简单。但是,我试图让循环的一部分只运行一次,而这正是我挣扎的地方。有没有办法做到这一点?

数据来自文本数据的大型 DataFrame。但是我创建了这个问题的简化版本,以尝试更轻松地解决它(没有运气):

a = [1, 2, 3, 4, 5]
A = [4, 5]

b = []
for i in a:
    if i in A:
        b.append(3.5) # My aim is to make this line run only once
        b.append(i)
    else:
        b.append(i)
print(b)
Run Code Online (Sandbox Code Playgroud)

这给出:

[1, 2, 3, 3.5, 4, 3.5, 5]
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到以下结果?

[1, 2, 3, 3.5, 4, 5]
Run Code Online (Sandbox Code Playgroud)

Luc*_*mos 5

您可以添加一个初始化为 false 的布尔值,然后在运行 b.append(3.5) 后直接将其设置为 true。如果您在 if 语句中检查此值,它将只运行一次。

a = [1, 2, 3, 4, 5]
A = [4, 5]

b = []

ran = False
for i in a:
    if i in A and not ran:
        b.append(3.5) # My aim is to make this line run only once
        ran = True
        b.append(i)
    else:
        b.append(i)
print(b)
Run Code Online (Sandbox Code Playgroud)

  • 我建议你先在你的 `and` 中检查 `not run`,以提高效率 (4认同)