![](/img/trans.png)
[英]Python: How do I match keys then multiply the values of a key-value pair value with values from another dictionary?
[英]i've a list of values and I would like to iteratively append key-value pair to a python dictionary
我有一个值列表,我想将 append 键值对迭代到 python 字典
lst = ['12233223','23232423','23453443']
我正在寻找 output 像这样:
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)
相同的值被添加到列表中两次
你不能有一个所有键都具有相同值的字典。 但是你可以有一个字典列表
new_list = [{'id': each} for each in lst]
您可以通过嵌套for
的字典列表使用对 go 的列表理解来获取值。 然后应用过滤条件并从符合条件的字典/值构建新字典:
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' ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.