相关疑难解决方法(0)

列表更改意外地反映在子列表中

我需要在Python中创建一个列表列表,所以我输入以下内容:

myList = [[1] * 4] * 3
Run Code Online (Sandbox Code Playgroud)

列表看起来像这样:

[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]  
Run Code Online (Sandbox Code Playgroud)

然后我改变了最里面的一个值:

myList[0][0] = 5
Run Code Online (Sandbox Code Playgroud)

现在我的列表看起来像这样:

[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]  
Run Code Online (Sandbox Code Playgroud)

这不是我想要或期望的.有人可以解释一下发生了什么,以及如何解决这个问题?

python list mutable nested-lists

576
推荐指数
10
解决办法
3万
查看次数

Python:字典列表仅在每次迭代中存储最后附加的值

我有这个字典列表:

MylistOfdict = [{'Word': 'surveillance',
  'Word No': 1},
 {'Word': 'equivocal',
  'Word No': 2}]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的字典 ( word_db2)列表,其中每个字典都有 3 个字典MylistOfdict。除了 MylistOfdict 的键和值之外,这些字典中的每一个都应该有带有值类型 1、类型 2、类型 3 的“卡片类型”键和带有增量值的“卡片键”键

代码:

word_db2 = []

key = 1
for i in MylistOfdict:
    for j in range(1, 4):
        i['Card Type'] = 'Type '+str(j)
        i['Card Key'] = key
        print(i)

        word_db2.append(i)
        key += 1
Run Code Online (Sandbox Code Playgroud)

输出:

{'Word No': 1, 'Card Key': 1, 'Word': 'surveillance', 'Card Type': 'Type 1'}
{'Word No': 1, 'Card Key': 2, 'Word': 'surveillance', 'Card Type': …
Run Code Online (Sandbox Code Playgroud)

python dictionary list

4
推荐指数
1
解决办法
3981
查看次数

标签 统计

list ×2

python ×2

dictionary ×1

mutable ×1

nested-lists ×1