我有一个dictcommandsInWord
的列表。我试图通过在dicts中搜索命令名来过滤这个列表。它给出了命令所在的dictcommandinWordExists
列表。下面是我的代码:
commandinWordExists = list(filter(lambda commandInWord: commandInWord['Name'] == command, commandsInWord))
if commandinWordExists:
commandinWordExists[0]['Count'] = commandsInModule[command]
这里的问题是,当我尝试在dict commandinWordExists
列表中添加一个新的键/值对Count
时,这个对也被添加到我的dict commandsInWord
的实际列表中。我不希望它被添加到实际的列表中。
例如,如果dict的commandsInWord
列表是:
[{'Ability':'Green'
'Name':'setzen'
'Status':'freigegeben'}]
如果在dict的这个列表中寻找'setzen'
,那么commandinWordExists
值将是
[{'Ability':'Green'
'Name':'setzen'
'Status':'freigegeben'}]
现在,如果在dictcommandinWordExists
列表中添加一个新的键/值对计数,那么它也会修改dictcommandsInWord
的原始列表。现在,两个dict列表都将具有以下值:
[{'Ability':'Green'
'Name':'setzen'
'Count' : 27
'Status':'freigegeben'}]
怎样才能使原来的dict列表不被修改呢?你知道吗
你肯定想read this
Python从不隐式地复制任何内容,因此筛选列表中的dict与“original”中的dict相同:
如果我理解正确,你需要创建一个列表的副本。你知道吗
例如:
相关问题 更多 >
编程相关推荐