我有一个字典列表:
```python ```
我希望创建一个新的字典列表(word_db2),其中每个字典都由
代码:
这个输出是正确的,但是
```python ```
MylistOfdict = [
{'Word': 'surveillance',
'Word No': 1},
{'Word': 'equivocal',
'Word No': 2}]
我希望创建一个新的字典列表(word_db2),其中每个字典都由
MylistOfdict
中的一个字典生成,并且除了包含MylistOfdict
的键和值之外,每个字典还应该有一个'卡类型'键和值分别为Type 1、Type 2、Type 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
输出:
{'Word': 'surveillance', 'Word No': 1, 'Card Type': 'Type 1', 'Card Key': 1}
{'Word': 'surveillance', 'Word No': 1, 'Card Type': 'Type 2', 'Card Key': 2}
{'Word': 'surveillance', 'Word No': 1, 'Card Type': 'Type 3', 'Card Key': 3}
{'Word': 'equivocal', 'Word No': 2, 'Card Type': 'Type 1', 'Card Key': 4}
{'Word': 'equivocal', 'Word No': 2, 'Card Type': 'Type 2', 'Card Key': 5}
{'Word': 'equivocal', 'Word No': 2, 'Card Type': 'Type 3', 'Card Key': 6}
这个输出是正确的,但是
word_db2
在每次迭代中只存储最后添加的值:[{'Word': 'surveillance', 'Word No': 1, 'Card Type': 'Type 3', 'Card Key': 3},
{'Word': 'surveillance', 'Word No': 1, 'Card Type': 'Type 3', 'Card Key': 3},
{'Word': 'surveillance', 'Word No': 1, 'Card Type': 'Type 3', 'Card Key': 3},
{'Word': 'equivocal', 'Word No': 2, 'Card Type': 'Type 3', 'Card Key': 6},
{'Word': 'equivocal', 'Word No': 2, 'Card Type': 'Type 3', 'Card Key': 6},
{'Word': 'equivocal', 'Word No': 2, 'Card Type': 'Type 3', 'Card Key': 6}]
for j in range(1, 4):
的内部循环的第一行中添加i = dict(i)
。另外,i
是字典的不好的名称,按照约定,应该称其为d
,因为i
通常表示整数。 - Steven Rumbalski