lst = ['12233223','13232423','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)
答案 0 :(得分:2)
这个更简单的版本怎么样。相反,您可以简单地将 'd'
添加到 string[1:]
-
[{'id':i,'new_id':'d'+i[1:]} for i in lst]
[{'id': '12233223', 'new_id': 'd2233223'},
{'id': '13232423', 'new_id': 'd3232423'},
{'id': '23453443', 'new_id': 'd3453443'}]
编辑:刚刚看到您的 if
条件。更新 -
[{'id':i,'new_id':'d'+i[1:]} for i in lst if i[0] if i[0]=='1' and len(i)==8]
[{'id': '12233223', 'new_id': 'd2233223'},
{'id': '13232423', 'new_id': 'd3232423'}]