簡體   English   中英

根據鍵拆分字典的最佳方法

[英]Best way to split a dict based on key

我有一個看起來像這樣的字典(縮短)

{'18/09/2022-morning': [5.4, 6.0, 6.5, 6.7, 6.9, 7.9, 8.5, 7.5, 7.9, 7.8, 7.6, 6.8],
 '18/09/2022-night': [6.4, 5.7, 4.8, 5.4, 4.7, 4.3],
 '19/09/2022-morning': [3.8],
 '19/09/2022-night': [4.1, 4.4, 4.3, 3.8, 3.5, 2.8]}

根據早/晚將其分成兩個不同的字典的最佳方法是什么? 我想不出一個簡單的方法:所需輸出的示例:

dic1 = {'18/09/2022-morning': [5.4, 6.0, 6.5, 6.7, 6.9, 7.9, 8.5, 7.5, 7.9, 7.8, 7.6, 6.8], '19/09/2022-morning': [3.8]}
dic2 = {'18/09/2022-night': [6.4, 5.7, 4.8, 5.4, 4.7, 4.3],  '19/09/2022-night': [4.1, 4.4, 4.3, 3.8, 3.5, 2.8]}
mornings = {}
nights = {}

for k, v in d.items():
    if k.endswith("morning"):
        mornings[k] = v
    else:
        nights[k] = v

您可以拆分 base '-'然后將 base morningnight insert 插入所需的dict

dct = {'18/09/2022-morning': [5.4, 6.0, 6.5, 6.7, 6.9, 7.9, 8.5, 7.5, 7.9, 7.8, 7.6, 6.8],
       '18/09/2022-night': [6.4, 5.7, 4.8, 5.4, 4.7, 4.3],
       '19/09/2022-morning': [3.8],
       '19/09/2022-night': [4.1, 4.4, 4.3, 3.8, 3.5, 2.8]}


dic1, dic2 = {}, {}
for key, val in dct.items():
    if key.split('-')[1] == 'morning':
        dic1[key] = val
    else:
        dic2[key] = val

print(dic1)
print(dic2)

Output:

{'18/09/2022-morning': [5.4, 6.0, 6.5, 6.7, 6.9, 7.9, 8.5, 7.5, 7.9, 7.8, 7.6, 6.8], '19/09/2022-morning': [3.8]}

{'18/09/2022-night': [6.4, 5.7, 4.8, 5.4, 4.7, 4.3], '19/09/2022-night': [4.1, 4.4, 4.3, 3.8, 3.5, 2.8]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM