[英]Group dictionaries in list of dictionaries based on consecutive integers as key values
我有一個包含字典的列表,我想根據具有連續整數的鍵將其拆分或分組為新的字典列表。 這是我的輸入:
lst=[{'name':'sam','class':1},
{'name':'adam','class':2},
{'name':'smith','class':3},
{'name':'john','class':10},
{'name':'r.','class':11},
{'name':'doe','class':12}
]
預期輸出:
[[{'name':'sam','class':1},
{'name':'adam','class':2},
{'name':'smith','class':3}],
[{'name':'john','class':10},
{'name':'r.','class':11},
{'name':'doe','class':12}]
]
我知道我可以對這樣的列表進行排序,但我不知道如何對字典列表進行同樣的操作。 最后,我想將這些名稱組合在一起。 從示例中您可以看出,我有一個以人名作為字符串的字典列表,並將它們分組,以便名字、中間名和姓氏在唯一列表中。 我基於 NER 機器學習算法得到這些人物字典,我在包含名稱的字符串上運行,但也包含其他信息。
謝謝!
您可以使用以下內容(只要您的lst
在類值順序中):
from itertools import groupby
grouped = [[v for k, v in g] for k, g in groupby(enumerate(lst), lambda v: v[0] - v[1]['class'])]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.