Из списка str EX: даты в целых числах - только месяц - PullRequest
0 голосов
/ 30 апреля 2019

Взять список дат EX: D = ['5/20/2016', '11/10/2016']
в D = [5,11]
Все, что мне нужно, это месяцы на элемент даты.

Я попытался заменить / пробелом, чтобы я мог отодвинуть 5 и 11 от других чисел. Вот где я сейчас.

for i in release:

    release = [str(x.replace('/',' ')) for x in release]

Взять D = ['5/20/2016', '11/10/2016']
Преврати его в

D = [5,11]

1 Ответ

0 голосов
/ 30 апреля 2019

Разделите, используя косую черту в качестве разделителя, и возьмите первый элемент.

D = ['5/20/2016', '11/10/2016'] 
release = [x.split("/")[0] for x in D]

release будет ['5', '11']

А если вы хотите получить результат в виде списка целых чисел:

release = [int(x.split("/")[0]) for x in D]

Полный ответ по комментариям:

Если вы хотите посчитать количество вхождений каждого месяца и получить словарь вида

{'Apr': 1,
 'Aug': 1,
 'Dec': 3,
 'Feb': 1,
 'Jan': 5,
 'Jul': 1,
 'Jun': 1,
 'Mar': 1,
 'May': 1,
 'Nov': 3,
 'Oct': 3,
 'Sep': 1}

Тогда я рекомендую использовать Counter в модуле collections, как показано в следующем коде:

from collections import Counter
releases=[1,1,1,1,1,2,3,4,5,6,7,8,9,10,10,10,11,11,11,12,12,12]
months={1:"Jan",2:"Feb",3:"Mar",4:"Apr",5:"May",6:"Jun",
        7:"Jul",8:"Aug",9:"Sep",10:"Oct",11:"Nov",12:"Dec"}
counts = {months[month]:n for month,n in Counter(releases).items()}

В примере я предоставил тестовый список releases, как если бы он был результатом предыдущего шага. После этого я предоставил строки месяца с точным отображением в строки. Несмотря на то, что список с этими именами и индексами может сработать, я считаю, что для этого случая семантически лучше диктат, потому что его задача - отобразить отношение ключ: значение.

Последняя строка возвращает искомый результат как dict.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...