python - 我想用字典检查相同键的列表,如果我有相同的键来合并字典
问题描述
我只想与键类型进行比较,如果键类型相同,我想合并具有相同键 ['TYPE] 的字典:
list_1 = [{'TYPE': ['general cargo'], 'YOB': [['2010', '2015']]}, {'TYPE': ['general cargo'], 'DWT': [[360000, 486000]]}, {'TYPE': ['barge'], 'DWT': [[3800, 6300], [4000, 5000]]}]
我想要这个结果:
[{'TYPE': ['general cargo'], 'YOB': [['2010', '2015']],'DWT': [[360000, 486000]]}, {'TYPE': ['barge'], 'DWT': [[3800, 6300], [4000, 5000]]}]
解决方案
尝试:
# list_1 = [{'TYPE': ['general cargo'], 'YOB': [['2010', '2015']]}, {'TYPE': ['general cargo'], 'DWT': [[360000, 486000]]}, {'TYPE': ['barge'], 'DWT': [[3800, 6300], [4000, 5000]]}]
list_1 = [{'TYPE': ['bc']}, {'TYPE': ['general cargo'], 'DWT': [[10000, 15000]]}, {'TYPE': ['general cargo']}, {'TYPE': ['general cargo'], 'COB': ['japan'], 'YOB': [['2010', '2015']]}]
temp = []
for i in range(len(list_1)):
if i!=0:
if list_1[i]["TYPE"] == list_1[i-1]["TYPE"]:
keys_to_add =list(list_1[i].keys())
keys_to_add.remove("TYPE")
for k in keys_to_add:
temp[-1][k] = list_1[i][k]
else:
temp.append(list_1[i])
else:
temp.append(list_1[i])
print(temp)
>> [{'TYPE': ['bc']},
{'TYPE': ['general cargo'],
'DWT': [[10000, 15000]],
'COB': ['japan'],
'YOB': [['2010', '2015']]}]
推荐阅读
- hadoop-yarn - 在 EMR 中取消 YARN 步骤
- php - insertafter 数据卡在其上方的单元格中
- ruby-on-rails - ActiveRecord::SubclassNotFound:无效的单表继承类型:User::Admin 不是 User 的子类
- python - 我在 python 中的全局变量无法从它创建的 def 外部引用
- listview - 使用 List 在 cide 后面创建一个列表视图
- > 作为源和网格作为数据模板
- javascript - 如何根据屏幕大小调整输入的大小(由用户在弹出窗口中选择)
- sql - SQL 窗口函数 order by vs partition by。有什么区别?
- discord.js - 需要 Discord.JS 嵌入命令帮助
- angular - 无法读取未定义的属性“endsWith”
- amazon-web-services - 有没有办法确保按顺序运行 lambda