如何在参数中增加变量?
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']
首先,min
和 max
是 python 中的不幸变量名,因为它们隐藏了 built-in min
和 max
函数。至于增加 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]
在下面的代码中,我想创建一个字符串列表,并将变量 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']
首先,min
和 max
是 python 中的不幸变量名,因为它们隐藏了 built-in min
和 max
函数。至于增加 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]