Удалить все цифры в списке строк - PullRequest
0 голосов
/ 03 февраля 2019
words = ['Duration12', 'Noun1', 'Adjective7']
result = [word[:-2] for word in words]

дает мне

['Duration', 'Nou', 'Adjectiv']

Но я хочу получить

['Duration', 'Существительное', 'Прилагательное']

Есть ли какая-либо библиотечная функция для ее реализации или я должен явно определить доступные цифры и затем удалить их?

Ответы [ 4 ]

0 голосов
/ 03 февраля 2019

Если вы уверены, что все цифры находятся в конце слов, вы можете использовать .strip следующим образом:

words = ['Duration12', 'Noun1', 'Adjective7']
results = [i.strip('0123456789') for i in words]
print(results) #give ['Duration', 'Noun', 'Adjective']

, но имейте в виду, что этот метод не будет работать, если цифры находятся внутри, а не вконец

0 голосов
/ 03 февраля 2019

Вы можете отфильтровать числа, используя isalpha :

words = ['Duration12', 'Noun1', 'Adjective7']

result = [''.join(c for c in w if c.isalpha()) for w in words]
print(result)
0 голосов
/ 03 февраля 2019

Попробуйте это:

In [8]: from string import digits

In [9]: remove_digits = str.maketrans('', '', digits)

In [10]: [word.translate(remove_digits) for word in words]
Out[10]: ['Duration', 'Noun', 'Adjective']

Для получения дополнительной информации перейдите по ссылке: Ссылка

0 голосов
/ 03 февраля 2019

Вы можете использовать понимание списка и удалить все цифры, используя re.sub:

import re
words = ['Duration12', 'Noun1', 'Adjective7']
[re.sub(r'[0-9]', '', w) for w in words]

Результат

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