在投射时将元组扩展为参数?

Expand tuple into arguments while casting them?

我有这个:

blah = random.randint(int(minmax[0]), int(minmax[1]))

我知道这是可能的:

minimum, maximum = int(minmax[0]), int(minmax[1])
blah = random.randint(minimum, maximum)

我可以使用元组参数扩展在一行中完成第二个吗? 例如,如果 minmax 是一个整数元组,我可以这样做:

blah = random.randint(*minmax)

但是我没有整数元组,我有一个字符串元组。显然,无论哪种方式都没什么大不了的。我只是好奇。

是的,这是可行的:

blah = random.randint(*map(int, minmax))

使用map(int, ...)进行类型转换。

您可以使用 列表理解 表达式来 type-cast 到 int 的元素,然后将列表解压缩为:

random.randint(*[int(i) for i in minmax])
#              ^    ^ type-cast minmax elements to `int`
#              ^ unpack the `list`