我正在嘗試練習集合和字典,我發現的一件事是我自己一遍又一遍地堅持這個練習問題。
例如,如果我有一本像
employees =[
{
"name": "Jamie Mitchell",
"job": "Head Chef",
"city": "Toronto",
"age": 80,
"status": "Working"
},
{
"name": "Michell Anderson",
"job": "Line Cook",
"city": "Mississauga",
"age": 56,
"status": "Lunch Break"
}
]
我將如何從第一部分中提取字典的第二部分,以便只有右側的資訊出現在新字典中?
我正在嘗試類似的東西:
extractedInfo = []
for employee in employees:
for key in keys:
extractedInfo.append(employee[key])
newDict = {extractedInfo[i]: extractedInfo[i 1] for i in range(0, len(extractedInfo), 2)}
print(newDict)
新詞典看起來像 :(Jamie, Chef, Toronto, 80 , Working , Michell , Line Cook, Mississauga, 56 , Lunch Break)
但是我知道我做錯了什么,因為我不確定將“密鑰”初始化為什么。我是字典和集合的新手,我很難過。任何關于如何做到這一點的建議或提示都會有很大幫助。
EXTRA:如果我只想保留兩個員工的 Name 和 Job 值怎么辦?
uj5u.com熱心網友回復:
你把它們倒退了;外層[]是一個串列。內部{}是字典。
你可以得到第二個 with employees[1](索引從 0 開始)或最后一個 with employees[-1](在這種情況下它們是相同的)。
如果你需要一份副本,你可以呼叫.copy()結果:
second_employee = employees[1]
copied_details = second_employee.copy()
uj5u.com熱心網友回復:
快速回答:
employees 是一個字典串列,因此您可以直接索引該串列以獲取 Michell:
newDict = employees[1]
更詳細的答案:
首先,這是在字典中創建鍵值對的方法:
dct = {}
dct['color'] = 'blue' # dct = {'color':'blue'}
知道了這一點,復制字典所需的只是鍵和值。您可以使用.keys(),.values()和.items()字典的方法來做到這一點。
dct.keys() # returns a list of all the keys -> ['color']
dct.values() # returns a list of all the values -> ['blue']
dct.items() # return a list of all the pairs as tuples -> [('color','blue')]
正如另一位用戶所提到的,還有其他選項可供復制,但我強烈建議您習慣使用上面列出的 3 種方法。如果您還沒有,請確保您在進入字典和組合結構之前對串列非常熟悉。您似乎已經知道如何使用回圈,所以希望這對您有幫助,祝您好運!
uj5u.com熱心網友回復:
您嘗試執行的操作將回傳NameError name 'keys' is not defined.。
for employee in employees:
for key in keys:
extractedInfo.append (employee [key])
為了得到的結果employees是你所描述的,你必須創建一個回圈利用array,增加了新的值在每個迭代中,通過這種方式:
>>> info = []
>>> for employe in employees:
... new_employe = []
... for key in employe.keys():
... new_employe.append(employe[key])
... info.append(new_employe)
...
>>> info
...
[['Jamie Mitchell', 'Head Chef', 'Toronto', 80, 'Working'], ['Michell Anderson', 'Line Cook', 'Mississauga', 56, 'Lunch Break']]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358170.html
上一篇:按索引映射兩個陣列
