Search code examples
pythontuplesiterable-unpacking

Expand tuple into arguments while casting them?


I have this:

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

I know this is possible:

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

Can I do this second one in a single line using tuple-argument expansion? For example, if minmax was a tuple of integers to begin with, I could do:

blah = random.randint(*minmax)

But I don't have a tuple of ints, I have a tuple of strs. Obviously it's not a big deal one way or the other. I'm just curious.


Solution

  • Yeah, that's doable:

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

    Use map(int, ...) to perform the type conversion.