【问题标题】:how to iterate over list and append dictionary to another list如何迭代列表并将字典附加到另一个列表
【发布时间】:2021-03-03 04:42:14
【问题描述】:
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)

【问题讨论】:

  • 您每次都在循环中附加同一个字典。在循环内移动d={}
  • 你代码中的lst是字典列表,不应该是字符串列表吗?
  • @Bramar。非常感谢。我已经对 d={} 内部循环进行了模式化,它对我有用。再次感谢您

标签: python dictionary


【解决方案1】:

这个更简单的版本怎么样。相反,您可以简单地将'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'}]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2021-06-08
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多