【问题标题】:How to append an object to multi-dimension list [duplicate]如何将对象附加到多维列表[重复]
【发布时间】:2012-11-19 12:33:33
【问题描述】:

可能重复:
Python list confusion

这是一个关于python列表的问题。 (我的编程环境是SL4A with python)

我想要下面的列表,输入数字“n”。

[ ['a'] , [] , [] , [] ] # (this example is the list when n =4)    <- the list I want

所以,我在下面写了一个源代码。

n = input()
array = [[]]*n
array[0].append('a')
print array

但是,我不能得到上面的输出,但也能得到一个类似的列表......

[ ['a'], ['a'], ['a'], ['a'] ] #  <- wrong list

所以,我有两个问题。

  1. 请告诉我一个源代码,它是我想要的列表。
  2. 为什么源代码给了我错误的列表?

【问题讨论】:

  • 感谢您编辑我的问题并告诉我一个过去的问题,我应该在发布此问题之前确认。

标签: android python list sl4a


【解决方案1】:

你应该使用

array = [[] for x in range(n)]

否则你会得到 4 个对 相同 列表的引用

【讨论】:

  • 非常感谢。我明白了!
【解决方案2】:

当你这样做时

array = [[]]*n

您将获得一个包含 n 个相同链接的列表。这就是为什么当您编辑其中一个元素时,您会编辑每个元素。 要摆脱这种情况,只需使用类似这样的东西

for i in range(0, 4):
    array1.append([])
    array2+=[]

【讨论】:

  • 非常感谢。我明白了!
【解决方案3】:

python 3.2:

n = input()
array = [[] for i in range(n)]
array[0].append('a')
print array

【讨论】:

  • 在 Python 3.2 中 print 是一个函数,所以我认为这种语法不起作用?
  • 如果您解释了您提供的代码如何回答问题,这将是一个更好的答案。
猜你喜欢
  • 2015-11-14
  • 1970-01-01
  • 2015-08-05
  • 2021-10-02
  • 2012-11-23
  • 2022-01-10
  • 2015-12-04
  • 2020-12-19
  • 2011-12-06
相关资源
最近更新 更多