Python:这里的 [] 是啥意思?
Posted
技术标签:
【中文标题】Python:这里的 [] 是啥意思?【英文标题】:Python: What does the use of [] mean here?Python:这里的 [] 是什么意思? 【发布时间】:2011-04-15 10:59:44 【问题描述】:这两个语句在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
【问题讨论】:
感谢您快速明确的回复。 当你尝试的时候,你看到了什么?另外,你用的是什么教程? 【参考方案1】:[]
是一个空列表。
[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]]
【讨论】:
【参考方案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]
【讨论】:
【参考方案3】:我认为它正在将 var 放入包含 foo.bar 的列表中,但我不确定。此外,如果这是行为并且 foo.bar 已经是一个列表,那么在每种情况下你会得到什么?
是的,它会创建一个新列表。
如果foo.bar
已经是一个列表,它将简单地变成一个列表,包含一个列表。
h[1] >>> l = [1, 2]
h[1] >>> [l]
[[1, 2]]
h[3] >>> l[l][0]
[1, 2]
【讨论】:
【参考方案4】:这几乎意味着它是一个数组/列表,其中 foo.bar 是列表/数组中的第一项。
【讨论】:
以上是关于Python:这里的 [] 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
Python 中的 *tuple 和 **dict 是啥意思? [复制]