Home > OS >  Is this possible to use = to add a single value into two variables at the same time?
Is this possible to use = to add a single value into two variables at the same time?

Time:10-02

Following this logic :

a,b = 0,0

I was expecting this to work :

a,b  = 1,1
SyntaxError: illegal expression for augmented assignment

so here i am.

Is there anyway to achieve this in one line ?

CodePudding user response:

Think of it like a list of "how to update each variable" (variables to the left, formulas to the right).

a, b = a 1, b 1

CodePudding user response:

If you want it in 1 line here is what you can do.. a,b=0 is not the right way , it should have been a=b=0 or a,b=0,0

a=b=0
a =1;b =1

CodePudding user response:

You can use map to apply your increment or other operation


a,b=0,0

a, b = map( lambda x : x 1, [a,b])

output


1,1

CodePudding user response:

As already mentioned by others, you could combine two statements into one line as a = 1; b = 1.

But, if you prefer a single statement in the same "spirit" as a, b = 0, 0 then try this:

a, b = a   1, b   1

The way these assignments work is that a list of variables is assigned a list of values:

variable value
a 0
b 0

a = 0; b = 0a, b = 0, 0

variable value
a a 1
b b 1

a = a 1; b = b 1a, b = a 1, b 1

You can either use multiple statements, one per table row, or a single statement where all the values in the left column go on one side of the = and all the values in the right column go on the other side.

This works only for = though. Your idea a, b = 1 firstly wouldn't work for the same reason a, b = 0 doesn't (there is only one right-hand side value), but a, b = 1, 1 unfortunately also doesn't work, just because Python doesn't support this concept. with tuples would concatenate them into a larger tuple, not add each of their elements ((1, 2) (3, 4) is (1, 2, 3, 4) and not (4, 6)).

  • Related