tags:

views:

85

answers:

3

Python. I need to assign multiple class instances to number of variables. First i tried this:

a = b = c = []

but they all refer to the same object, which is not what I need. This works better:

(a, b, c) = [[] for i in range(3)]

but it seems a bit too verbose. Is there a shorter way to do this?

UPDATE: OK, so this is not really Pythonic to cram everything into one line, question resolved.

But if this worked it'd be really cool:

a,b,c = []*3

And this line creates three references to the same object:

a,b,c = [[]] * 3

Oh well...

+8  A: 

simply:

a = []
b = []
c = []

(python is not perl, there is no need for one-liners)

Adrien Plisson
This communicates the intent to someone that is not a native Python programmer, so I like this snippet of code the most.
Edison Gustavo Muenz
+9  A: 
a, b, c = [], [], []
badp
A: 
a = []
b = a[:]
import copy
c = copy.copy(b)

You could use these if you want them all initialized to something other than []

pwdyson