Разделить даты по месяцам питона - PullRequest
0 голосов
/ 25 июня 2018

У меня есть следующий список дат

[['2018-05-24', 6000], ['2018-05-25', 43300], ['2018-06-27', 0], ['2018-06-28', 20400], ['2018-06-03', 600], ['2018-07-03', 1100]]

Я хочу, чтобы вышеуказанный массив был разбит следующим образом

[['2018-05-24', 6000], ['2018-05-25', 43300]]
['2018-06-27', 0], ['2018-06-28', 20400], ['2018-06-03', 600]]
[['2018-07-03', 1100]]

Есть ли способ сделать это в Python?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Вы можете использовать itertools.groupby, чтобы сделать что-то подобное

>>> import itertools 
>>> 
>>> l=[['2018-05-24', 6000], ['2018-05-25', 43300], ['2018-06-27', 0], ['2018-06-28', 20400], ['2018-06-03', 600], ['2018-07-03', 1100]]
>>> [list(v) for k,v in groupby(l, lambda e: e[0])]
[[['2018-05-24', 6000]], [['2018-05-25', 43300]], [['2018-06-27', 0]], [['2018-06-28', 20400]], [['2018-06-03', 600]], [['2018-07-03', 1100]]]
>>> 
0 голосов
/ 25 июня 2018

Использование groupby из itertools

Пример:

from itertools import groupby
import pprint
res = []
l = [['2018-05-24', 6000], ['2018-05-25', 43300], ['2018-06-27', 0], ['2018-06-28', 20400], ['2018-06-03', 600], ['2018-07-03', 1100]]
for k, g in groupby(l, lambda x: x[0][:7]):
    res.append(list(g))

pprint.pprint(res)

Выход:

[[['2018-05-24', 6000], ['2018-05-25', 43300]],
 [['2018-06-27', 0], ['2018-06-28', 20400], ['2018-06-03', 600]],
 [['2018-07-03', 1100]]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...