5

What is the difference in these two statements in python?

var = foo.bar 

and

var = [foo.bar] 

I think it is making var into a list containing foo.bar but I am unsure. Also if this is the behavior and foo.bar is already a list what do you get in each case?

For example: if foo.bar = [1, 2] would I get this?

var = foo.bar #[1, 2] 

and

var = [foo.bar] #[[1,2]] where [1,2] is the first element in a multidimensional list 
1
  • 1
    When you tried it, what did you see? Also, what tutorial are you using? Commented Sep 21, 2010 at 23:06

4 Answers 4

14

[] is an empty list.

[foo.bar] is creating a new list ([]) with foo.bar as the first item in the list, which can then be referenced by its index:

var = [foo.bar] var[0] == foo.bar # returns True 

So your guess that your assignment of foo.bar = [1,2] is exactly right.

If you haven't already, I recommend playing around with this kind of thing in the Python interactive interpreter. It makes it pretty easy:

>>> [] [] >>> foobar = [1,2] >>> foobar [1, 2] >>> [foobar] [[1, 2]] 
Sign up to request clarification or add additional context in comments.

Comments

3

Yes, it's making a list containing one element, foo.bar.

If foo.bar is [1,2], you indeed get [[1,2]].

For instance,

>> a=[] >> a.append([1,2]) >> a[0] [1,2] >> b=[[1,2]] >> b[0] [1,2] 

To elaborate a bit more on that exact example,

>> class Foos: >> bar=[1,2] >> foo=Foos() >> foo.bar [1,2] >> a=[foo.bar] >> a [[1,2]] >> a[0] [1,2] 

Comments

1

I think it is making var into a list containing foo.bar but I am unsure. Also if this is the behavior and foo.bar is already a list what do you get in each case?

  • Yes, it creates a new list.

  • If foo.bar is already a list, it will simply become a list, containing one list.

    h[1] >>> l = [1, 2] h[1] >>> [l] [[1, 2]] h[3] >>> l[l][0] [1, 2] 

Comments

0

That pretty much means it's an array/list of stuff with foo.bar being the first item in the list/array.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.