代码之家  ›  专栏  ›  技术社区  ›  Tyler

帮我理解蟒蛇

  •  0
  • Tyler  · 技术社区  · 16 年前

    M = [[]]*(24*60/5)
    

    将数字2追加到中的第51个数组 M

    M[50].append(2)
    

    M是什么?

    ...
    [2]
    [2]
    [2]
    [2]
    [2]
    [2]
    [2]
    [2]
    ...
    

    M中的每个元素都是数组 [2]

    我错过了什么?我怀疑 [] 我最初初始化的是对内存中相同空间的引用。

    3 回复  |  直到 16 年前
        1
  •  5
  •   Borealid    16 年前

    你呢 做 []

    不是每次你打电话 它给你相同的数组-你只调用了它

    了解了?

        2
  •  4
  •   Eric O. Lebigot    16 年前

    是的,你明白了,就像博雷亚利德指出的。

    如果您多次想要不同的列表,可以执行以下操作:

    M = [[] for _ in range(24*60/5)]
    

    这个 _ 只是一个普通的变量名(变量可以以下划线开头),但它告诉代码读者“我是一个不重要的变量,没有特殊的含义”。

        3
  •  0
  •   p.campbell    15 年前

    看一看 http://www.python.org/dev/peps/pep-0020/ .

    你喜欢使用的结构很难阅读,“可读性很重要”。