我有一個包含字典的串列串列。
users = [[{'USERID': 302154, 'SALARY': 130.645, 'EXPERIENCE': 9},
{'USERID': 506005, 'SALARY': 140.137, 'EXPERIENCE': 3}],
[{'USERID': 302154, 'SALARY': 121.0, 'EXPERIENCE': 9},
{'USERID': 506005, 'SALARY': 57.987, 'EXPERIENCE': 3}]
]
我想為每個用戶獲取一本字典,并通過“UserID”總結“Salary”:
result = [{'USERID': 302154, 'SALARY': 251.645, 'EXPERIENCE': 9},
{'USERID': 506005, 'SALARY': 198.124, 'EXPERIENCE': 3}]
我該如何實施?
uj5u.com熱心網友回復:
您可以使用itertools.chain來展平串列并使用字典作為中間容器簡單地迭代和添加 SALARY:
from itertools import chain
out = {}
for d in chain.from_iterable(users):
if d['USERID'] in out:
out[d['USERID']]['SALARY'] = d['SALARY']
else:
out[d['USERID']] = d.copy() # making a copy to avoid modifying original
out = list(out.values())
輸出:
[{'USERID': 302154, 'SALARY': 251.645, 'EXPERIENCE': 9},
{'USERID': 506005, 'SALARY': 198.124, 'EXPERIENCE': 3}]
uj5u.com熱心網友回復:
result = []
for i in users: #that iterates users' list
temp_userid = ""
temp_salary = 0
temp_experience = 0
for j in i: #that iterates one user's list (iterate user's dicts)
temp_userid = j["USERID"]
temp_salary = j["SALARY"]
temp_experience = j["EXPERIENCE"]
temp_dict = {}
temp_dict["USERID"] = temp_userid
temp_dict["SALARY"] = temp_salary
temp_dict["EXPERIENCE"] = temp_experience
results.append(temp_dict)
#result array is hopefully what you want.
#I've not run it, neither is the fastest way
#of doing that, yet it provides some intuition.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/444678.html
上一篇:如何將字典串列轉換為串列?
