2017-02-02 2 views
0

J'ai ceci:Étendre le tuple en arguments lors de leur lancement?

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

Je sais que cela est possible:

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

Puis-je faire ce deuxième en une seule ligne en utilisant expansion argument tuple? Par exemple, si minmax était un tuple d'entiers pour commencer, je pouvais faire:

Mais je n'ai pas un tuple de ints, j'ai un tuple de DOD. Évidemment, ce n'est pas une grosse affaire dans un sens ou dans l'autre. Je suis juste curieux.

+1

Utiliser 'map' fonction. – Kasramvd

+3

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

Répondre

3

Ouais, c'est faisable:

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

Utilisez map(int, ...) pour effectuer la conversion de type.

0

Vous pouvez utiliser une compréhension expression de type moulé sous pression les éléments à la liste intpuis déballer la liste comme:

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