2017-02-02 14 views
0

у меня есть это:Развернуть кортеж в аргументы при их использовании?

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

Я знаю, что это возможно:

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

Могу ли я сделать это второй в одной строке с помощью расширения кортеж аргументов? Например, если MINMAX был набор целых чисел, чтобы начать с того, что я мог сделать:

Но у меня нет кортеж Интс, у меня есть кортеж STRs. Очевидно, это не так важно, так или иначе. Мне просто интересно.

+1

Использование 'map' функции. – Kasramvd

+3

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

ответ

3

Да, это выполнимо:

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

Использование map(int, ...) выполнить преобразование типа.

0

Вы можете использовать понимание выражение а список к типу отливка элементы для int, а затем распаковать список как:

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