Разделить сабдикт в python - PullRequest
0 голосов
/ 28 апреля 2020

Ну, ребята, я создал диктовку и разделил ее с помощью функции:

listOfDicts = [{k:v for k,v in dictionary.items() if k%10==i} for i in range(10)]

Из этого я получил 10 списков:

listOfDicts[0 a 9]
listOfDict[0]: {0: 0, 10: 5, 20: 10, 30: 15, 40: 20, 50: 25, 60: 30, 70: 35, 80: 40, 90: 45}

Но что, если я захочу разделите подсписки на равные размеры (в случае, если размер = 3) и добавьте в единый текст:

listOfDict[0]: {{0: 0, 10: 5, 20: 10}, {30: 15, 40: 20, 50: 25}, {60: 30, 70: 35, 80: 40}, {90: 45}}

1 Ответ

0 голосов
/ 28 апреля 2020

Попробуйте такой подход:

chunks = [data[x:x+100] for x in range(0, len(data), 100)]

Ссылка: Разделите список python на другие "подсписки", то есть меньшие списки

Для словарей вы Можно использовать такой подход:

d = {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4, 'key5': 5}
d1 = dict(d.items()[len(d)/2:])
d2 = dict(d.items()[:len(d)/2])

Обратите внимание, что вам нужно сначала адаптироваться к вашей реальности.

Ссылка: Разделить словарь пополам?

Вы можете преобразовать свой словарь в список:

chunks = [list(data.items())[x:x+100] for x in range(0, len(data), 100)]

И куски будут выглядеть так:

[[('a', 1), ('b', 2)], [('c', 3), ('d', 4)]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...