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

时间:2017-02-02 20:30:52

标签: python tuples iterable-unpacking

我有这个:

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)

但我没有一个整数元组,我有一个strsle元组。显然,这不是一个大问题。我只是好奇。

2 个答案:

答案 0 :(得分:4)

是的,那是可行的:

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

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

答案 1 :(得分:0)

您可以使用 list comprehension 表达式将元素类型转换为int,然后将列表解压缩为:

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