i';我有一个值列表,我想迭代地将键值对附加到python字典中

i';我有一个值列表,我想迭代地将键值对附加到python字典中,python,dictionary,Python,Dictionary,我有一个值列表,我想迭代地将键值对附加到python字典中 lst=['12233223'、'23232423'、'23453443'] 我看起来像这样: new_list=[{'id':'12233223','new_id':'d2233223'},{'id':'13232423','new_id':'d3232423'}] 但我明白了 [{'id':13453443,'new_id':13453443},{'id':13453443,'new_id':13453443}] 这是我的密码 ls

我有一个值列表,我想迭代地将键值对附加到python字典中

lst=['12233223'、'23232423'、'23453443']

我看起来像这样:

new_list=[{'id':'12233223','new_id':'d2233223'},{'id':'13232423','new_id':'d3232423'}]

但我明白了

[{'id':13453443,'new_id':13453443},{'id':13453443,'new_id':13453443}]

这是我的密码

lst = [{'id':'12233223'},{'id':'13232423',} {'id':'23453443'}]
d={}
new_list=[]
for each in lst:
    d['id']= each
    if len(each)==8 and each[0]==1:
    new_id = each.replace('1','d',1)
    d['new_id'] = new_id
    new_list.append(d)

相同的值被添加到列表中两次

您不能拥有一个所有键都具有相同值的dict。但是你可以有一个单子来代替

new_list=[{'id':lst中的每个}]

您可以使用列表理解来浏览带有嵌套的
for
的词典列表,以获取值。然后应用筛选条件并根据符合条件的字典/值构建新字典:

lst = [{'id':'12233223'},{'id':'13232423'}, {'id':'23453443'}]


new_list = [ {**each,'new_id':"d"+n[1:]} for each in lst 
             for n in each.values() if len(n)==8 and n[0]=='1' ]

print(new_list)
              
[{'id': '12233223', 'new_id': 'd2233223'}, 
 {'id': '13232423', 'new_id': 'd3232423'}]
如果
lst
中的词典有其他键,则可以使嵌套的
for
更具体,以仅获取“id”键的值:

new_list = [ {**each,'new_id':"d"+n[1:]} for each in lst 
             for n in [each['id']] if len(n)==8 and n[0]=='1' ]

字典键必须是唯一的。您正在尝试创建一个每个键都相同的字典。您需要不同的数据结构。你想用新列表做什么?@Pines抱歉我的错误。我在找字典目录。我已经更新了代码。请检查..我已经用一个以上的dict值更新了脚本。请查收