制作一個應用程式,我需要從 API 請求中獲取欄位“作業人員”并將其傳遞給另一個字典。字典的行為很奇怪,我似乎無法像普通串列或元組一樣追加 =。.update
主檔案
# worker_detail - contains a list of filtered workers
# workers - contains a list of all workers
information = {}
reported_workers = []
for person in workers:
if person['id'] in worker_detail:
reported_workers = person
print(reported_workers)
如果我使用上述邏輯,它只會列印字典中的欄位,而沒有和工人..
['id', 'first_name', 'last_name', 'email', 'phone_number', 'hire_date', 'job_id', 'salary', 'commission_pct', 'manager_id', 'department_id', 'id', 'first_name', 'last_name', 'email', 'phone_number', 'hire_date', 'job_id', 'salary', 'commission_pct', 'manager_id', 'department_id']
如果我print(person)輸出將是一個包含所有必要欄位的字典,它的詳細資訊
{'id': 1, 'first_name': 'Steven', 'last_name': 'King', 'email': 'SKING', 'phone_number': 5151234567, 'hire_date': '2021-06-17', 'job_id': 'AD_PRES', 'salary': 24000, 'commission_pct': 0, 'manager_id': 0, 'department_id': 0}
{'id': 2, 'first_name': 'Neena', 'last_name': 'Kochhar', 'email': 'NKOCHHAR', 'phone_number': 5151234568, 'hire_date': '2020-06-17', 'job_id': 'AD_VP', 'salary': 17000, 'commission_pct': 0, 'manager_id': 100, 'department_id': 90}
{'id': 5, 'first_name': 'Bruce', 'last_name': 'Ernst', 'email': 'BERNST', 'phone_number': 5151234571, 'hire_date': '2016-07-17', 'job_id': 'IT_PROG', 'salary': 6000, 'commission_pct': 0, 'manager_id': 103, 'department_id': 60}
{'id': 9, 'first_name': 'Inbal', 'last_name': 'Amor', 'email': 'IMOR', 'phone_number': 5151234575, 'hire_date': '2013-08-23', 'job_id': 'IT_PROG', 'salary': 5000, 'commission_pct': 0, 'manager_id': 104, 'department_id': 60}
uj5u.com熱心網友回復:
嘗試使用串列推導:
reported_workers = [person for person in workers if person in worker_detail]
如果你發現自己在一個串列上回圈創建一個新串列,通常你可以用這個非常漂亮的結構來替換它。它也可以讓你抽象出你的標準。如果您希望您的 worker_detail 進行更具體的調整,您可以為其創建一個函式,然后在串列理解中呼叫它
def is_worker(person_id):
for worker in worker_detail:
if worker['id'] == person_id: return True
return False
reported_workers = [person for person in workers if is_worker(person['id'])]
uj5u.com熱心網友回復:
append, 不 =
information = {}
reported_workers = []
for person in workers:
if person in worker_detail:
reported_workers.append(person)
print(reported_workers)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/493179.html
