Альтернативные способы группирования элементов из списка элементов - PullRequest
1 голос
/ 19 октября 2019

Есть ли у кого-нибудь предложения, как мне лучше уточнить / если есть какие-либо способы, которыми я могу получить следующие результаты:

import itertools
item_list = ['aaa:sampleA1', 'ccc:sampleC2', 'ccc:sampleC1']
grouping = {}

for cat_name, item in itertools.groupby(sorted(item_list), lambda x: x.split(":")[0]):
    grouping[cat_name] = list(item)

print grouping # {'aaa': ['aaa:sampleA1'], 'ccc': ['ccc:sampleC1', 'ccc:sampleC2']}

Я пытаюсь сортировать и выполнять категоризацию элементов на основе элементовсписок.

1 Ответ

3 голосов
/ 19 октября 2019

Вы можете перебирать список элементов и добавлять каждое значение к подсписку в соответствии с ключом:

grouping = {}
for item in item_list: # or sorted(item_list) if you do need the sub-lists to be sorted
    key, value = item.split(':')
    grouping.setdefault(key, []).append(value)

grouping становится:

{'aaa': ['sampleA1'], 'ccc': ['sampleC2', 'sampleC1']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...