【问题标题】: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

【问题讨论】:

  • 感谢您快速明确的回复。
  • 当你尝试的时候,你看到了什么?另外,你用的是什么教程?

标签: python list syntax brackets variable-assignment


【解决方案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 是列表/数组中的第一项。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-25
          • 2021-04-14
          • 2012-01-06
          • 1970-01-01
          • 1970-01-01
          • 2021-05-25
          • 1970-01-01
          相关资源
          最近更新 更多