【问题标题】:Python : List elements are connected, how to separate [duplicate]Python:列表元素是连接的,如何分离[重复]
【发布时间】:2015-10-11 19:42:27
【问题描述】:
def list():
    mylist = [[0,0,0,0]]*3
    mylist[1][2] = 8013
    print(mylist)

输出:

[[0,0,8013,0],[0,0,8013,0],[0,0,8013,0]]

想要的输出:

[[0,0,0,0],[0,0,8013,0],[0,0,0,0]]

我该如何解决这个问题?

【问题讨论】:

  • @inspectorG4dget 你能链接到重复的线程吗?我尝试搜索,但找不到任何东西。
  • 刷新页面。您应该会在帖子的编辑中看到链接的副本
  • @inspectorG4dget 啊,谢谢!即使那个被标记为可能重复......我应该删除它,还是让它保留以便其他人有更好的机会搜索和发现问题?
  • 别管它——正是因为这个原因

标签: python python-3.x


【解决方案1】:

repr 上使用eval

mylist = eval(repr([[0,0,0,0]]*3))  

或使用 list comp 生成列表

mylist = [[0,0,0,0] for _ in range(3)]  

【讨论】:

    【解决方案2】:

    使用mylist = [[0 for _ in xrange(4)] for _ in xrange(3)]

    使用 * 将导致 Python 对整个列表使用相同的对象,这就是为什么当您更改列表中的任何一个元素时,您将更改其余的元素。

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      相关资源
      最近更新 更多