Python:这里,[]的用法是什么意思?

2024-09-28 05:40:09 发布

您现在位置:Python中文网/ 问答频道 /正文

python中这两个语句的区别是什么?

var = foo.bar

以及

var = [foo.bar]

我认为它正在将var变成一个包含foo.bar的列表,但我不确定。另外,如果这是行为,foo.bar已经是一个列表,那么在每种情况下,您会得到什么?

例如:如果foo.bar=[1,2]我会得到这个吗?

var = foo.bar #[1, 2]

以及

var = [foo.bar] #[[1,2]] where [1,2] is the first element in a multidimensional list

Tags: thein列表fooisvarbar情况
3条回答

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?

  • 是的,它会创建一个新列表。

  • 如果foo.bar已经是一个列表,那么它只会变成一个包含一个列表的列表。

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

[]是空列表。

[foo.bar]正在创建一个新列表([]),其中foo.bar是列表中的第一个项,然后可以由其索引引用:

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

所以你猜你对foo.bar = [1,2]的赋值是完全正确的。

如果您还没有,我建议您在Python交互式解释器中使用这种东西。这让事情变得很简单:

>>> []
[]
>>> foobar = [1,2]
>>> foobar
[1, 2]
>>> [foobar]
[[1, 2]]

是的,它正在生成一个包含一个元素foo.bar的列表。

如果foo.bar是[1,2],那么确实会得到[[1,2]]。

例如

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

为了更详细地说明这个确切的例子

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

相关问题 更多 >

    热门问题