我是python的新手。我有一个问题要问。
b = [{a:"1",b:"6"},{a:"1",b:"89"},{a:"2",b:"16"},{a:"2",b:"99"}]
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
[{a:"1", b: "6. 89"}, {a:"2", "b": "16. 99"}]
Run Code Online (Sandbox Code Playgroud)
任何的想法?
# Set up initial data
unmerged = [{"a":"1","b":"6"},{"a":"1","b":"89"},{"a":"2","b":"16"},{"a":"2","b":"99"}]
merged = {}
for entry in unmerged:
entry_a = entry['a']
entry_b = entry['b']
composite_key = entry_a
if composite_key in merged:
merged[composite_key]['b'].append(entry_b)
else:
merged[composite_key] = {
'a': entry_a,
'b': [entry_b]
}
# reconstruct your list with just your unique entries
cleaned = []
for key, value in merged.items():
cleaned.append({
'a': value['a'],
'b': '.'.join(value['b']) # string join b by ". "
})
new_list = [ clean for clean in cleaned ]
print(new_list)
Run Code Online (Sandbox Code Playgroud)
输出:
[{'a': '1', 'b': '6.89'}, {'a': '2', 'b': '16.99'}]
Run Code Online (Sandbox Code Playgroud)