Список Python со строками типов

У меня есть список Python

Year= [‘1997JAN’, ‘1997FEB’, ‘1997MAR’‘1997APR’………………………’2021SEP’’2021OCT’]

Я хотел бы извлечь из приведенного выше списка только годы, но не месяцы

Как я могу извлечь только годы?

Year = [1997,1997,1997,…………………2021,2021]

что ты уже испробовал?

Klaus D. 21.11.2022 13:57

Год = [int(i[:4]) для i в году]

Christian Sloper 21.11.2022 13:58
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
58
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Если у вас есть эти даты:

dates = ['1997JAN', '1997FEB', '1997MAR','1997APR', '2022NOV']

Просто используйте это, чтобы извлечь годы из дат:

years = [int(x[:4]) for x in dates]

Вероятно, следует ввести int() для преобразования в целые числа, чтобы вы соответствовали ожидаемому результату от OP.

Christian Sloper 21.11.2022 14:06

это решение не будет работать после 31 декабря 9999 года. Но это больше не будет нашей проблемой, так что вперед.

Sembei Norimaki 21.11.2022 14:19

Вы импортируете и используете модуль re:

import re

Year= ['1997JAN', '1997FEB', '1997MAR','1997APR','2021SEP','2021OCT']

Years_only=[re.findall(r'\d+', year)[0] for year in Year]

Years_only

Вывод

['1997', '1997', '1997', '1997', '2021', '2021']

Сначала вы можете извлечь числа с помощью filter и str.isdigit следующим образом:

input = '1997JAN'
output = ''.join(filter(str.isdigit, input))
print(output)
# '1997' (This is still string)

Теперь мы должны привести его к целому числу:

output = int(''.join(filter(str.isdigit, input)))
print(output)
# 1997

Вы можете сделать это во всех элементах в списке с картой:

output = list(map(lambda input: int(''.join(filter(str.isdigit, input))), Year))
print(output)
# [1997,1997,1997,…………………2021,2021]

Другие вопросы по теме