簡體   English   中英

基於連續整數作為鍵值對字典列表中的字典進行分組

[英]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.

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