我的當前列表:合併列表
my_list = [
{'id': 1, 'val': [6]},
{'id': 2, 'val': [7]},
{'id': 3, 'val': [8]},
{'id': 2, 'val': [9]},
{'id': 1, 'val': [10]},
]
所需的輸出:
my_list = [
{'id': 1, 'val': [6, 10]},
{'id': 2, 'val': [7, 9]},
{'id': 3, 'val': [8]},
]
我試過到目前爲止:
my_new_list = []
id_set = set()
for d in my_list:
if d['id'] not in id_set:
id_set.add(d['id'])
temp = {'id': d['id'], 'val': d['val']}
my_new_list.append(temp)
else:
# loop over the new list and find the dict which already have d['id'] and update by appending value
# but this is not efficient
任何其他更有效的方法或者可能是我不知道的一些內置功能。
PS:順序很重要!
在新的名單將有'id'獨特的價值,你可以使用字典來代替,用'id'作爲重點。這樣你就不必循環遍歷新列表,你可以直接通過id來訪問它。 – spectras
輸出清單的順序是否重要? – schwobaseggl
@schwobaseggl:是的順序是重要的,這就是爲什麼我沒有使用詞典提到的y spectras – Wendy