3 回答

TA貢獻1847條經驗 獲得超7個贊
您首先創(chuàng)建兩個列表并附加項目。應該對列表中的每個對象進行迭代,每個對象都是字典本身。假設包含字典的列表被稱為full_list,因為命名它對listpython 來說不太方便。
week_list = []
timing_list = []
for i in full_list:
week_list.append(i['week'])
timing_list.append(i['timing'])
如果有空值的字典,或者空字典,或者只有week但沒有timing的字典,例如,我喜歡使用:
import numpy as np
for i in full_list:
try:
week_list.append(i['week'])
except KeyError:
week_list.append(np.nan)
try:
timing_list.append(i['timing'])
except KeyError:
timing_list.append(np.nan)
這樣NaN,只要鍵不存在,您就會在列表中附加一個值,如果您稍后對列表執(zhí)行操作,這將很有幫助。
完整示例:
full_list = [{'week': 3, 'timing': '07:30'}, {'week': 4, 'timing': '20:30'},{},{'week':4},{'timing':'09:21'},{}]
week_list = []
timing_list = []
import numpy as np
for i in full_list:
try:
week_list.append(i['week'])
except KeyError:
week_list.append(np.nan)
try:
timing_list.append(i['timing'])
except KeyError:
timing_list.append(np.nan)
print(week_list)
print(timing_list)
輸出:
[3, 4, nan, 4, nan, nan]
['07:30', '20:30', nan, nan, '09:21', nan]
編輯:
如果字典是這樣的:
full_dict = {'person_1':{'week': 3, 'timing': '07:30'},'person_2':{'week': 4, 'timing': '20:30'},'person_3':{}}
迭代應該按 each 進行key。因此循環(huán)將是:
for i in full_dict.keys():
and exactly the same code as before

TA貢獻1829條經驗 獲得超9個贊
我使用此代碼分別提取它們。
weeks = [ a['week'] for a in new_list ]
timings = [ a['timing'] for a in new_list ]

TA貢獻1835條經驗 獲得超7個贊
以下代碼將幫助分別提取周和時間值
check = [{'week': 3, 'timing': '07:30'}, {'week': 4, 'timing': '20:30'}]
week_list = []
timing_list=[]
for i in check:
for k,v in i.items():
if k == 'week':
week_list.append(v)
else:
timing_list.append(v)
Output
```[3, 4]
['07:30', '20:30']
添加回答
舉報