Home > Software design >  How to assign multiple variables one line that depend on each other in python
How to assign multiple variables one line that depend on each other in python

Time:08-10

So I know that you can assign multiple variables in one line like so:

a, b, c = 1, 2, 3

But can you assign a variable based off of the value of another variable in one line?

Idea:

a, b, c = 1, 2, a b

I know that the idea code doesn't work but is there some way to replicate this in one line even if longer or weirder?

NOTE:

Using ; like below doesn't count

a, b = 1, 2; c = a b

CodePudding user response:

Using the the walrus operator it's possible, if a bit ugly

c = (a := 1)   (b := 2)

NOTE: Assignment expressions (the walrus operator) are only available from Python 3.8 onwards

CodePudding user response:

This only works in 3.8 and it gets really gross. The "Walrus Operator" lets you make assignments in an expression.

c = (a := 1 )   (b := 2)

To understand what's going on, you can see the difference between the "walrus" and the regular assignment in the interactive interpreter:

>>> x = 2

Returns nothing. But similarly:

>>> (x := 2)
2

Returns the 2 that was also assigned to x. So it can be used in an expression while also doing the assignment.

  • Related