如何在参数中增加变量?

How to increment variables inside argument?

在下面的代码中,我想创建一个字符串列表,并将变量 min 作为参数传递给方法:

max_list = [1 , 2 , 3]
min = 0
output = ["{a} + {b}".format(a=min, b=max) for max in max_list]

但是,我想在每次生成列表对象时增加 min。 是否有 python 方法来实现 ++ 运算符的相同结果?显然,在这种情况下我不能使用 min++,因为它是 python 代码。

预期结果:

['0 + 1', '1 + 2', '2 + 3']

首先,minmax 是 python 中的不幸变量名,因为它们隐藏了 built-in minmax 函数。至于增加 1,您可以通过以下方式利用 itertools.count

import itertools
max_list = [1 , 2 , 3]
mn = itertools.count(0)
output = ["{a} + {b}".format(a=next(mn), b=mx) for mx in max_list]
print(output)

输出:

['0 + 1', '1 + 2', '2 + 3']

您没有分享您的预期输出,所以这可能不是您想要的,但是...

max_list = [1, 2, 3]
output = [f"{min} + {max}" for min, max in enumerate(max_list)]
print(output)

输出:
['0 + 1', '1 + 2', '2 + 3']

从 Python 3.8 开始,您可以使用 assignment expression :=。但是由于像++min这样的表达式结果的return之前会发生自增,所以需要将min初始化为-1

max_list = [1 , 2 , 3]
min = -1
output = ["{a} + {b}".format(a=(min := min + 1) , b=max) for max in max_list]