Python 删除字符串列表中的所有数字
给我 ['Duration','Nou','adj'] 但是我想 [‘持续时间’、‘名词’、‘形容词’]Python 删除字符串列表中的所有数字,python,list,Python,List,给我 ['Duration','Nou','adj'] 但是我想 [‘持续时间’、‘名词’、‘形容词’] 是否有任何库函数来实现它,或者我是否应该显式地检测可用的数字,然后删除它们?您可以使用列表理解,并使用re.sub删除所有数字: words = ['Duration12', 'Noun1', 'Adjective7'] result = [word[:-2] for word in words] 结果 您可以使用以下方法筛选出数字: 试试这个: words = ['Duration12'
是否有任何库函数来实现它,或者我是否应该显式地检测可用的数字,然后删除它们?您可以使用列表理解,并使用
re.sub
删除所有数字:
words = ['Duration12', 'Noun1', 'Adjective7']
result = [word[:-2] for word in words]
结果
您可以使用以下方法筛选出数字: 试试这个:
words = ['Duration12', 'Noun1', 'Adjective7']
result = [''.join(c for c in w if c.isalpha()) for w in words]
print(result)
有关更多信息,请参阅链接:如果您确定所有数字都在单词的末尾,您可以按以下方式使用
.strip
:
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']
但请记住,如果数字在单词的内部而不是末尾,这种方法将不起作用。数字是否总是在单词的末尾?@learnerPy Check-answer@Olivier Melançon ya。并且得到的答案已经被标记为“已接受”,非常值得知道。出于好奇,我现在正在搜索re if['Duration[12]','Noun[1]','approxer[7]']也可能你的意思是删除括号?使用
[re.sub(r'[0-9]+',r'[\g]',w)表示w,在words]
表示单词=['Duration12:1','noon','approxer 7:8']我得到的是['Duration Duration[12]:[1],'noon','approxer'[7]:[8]][12] :1',名词',形容词[7]:8']
words = ['Duration12', 'Noun1', 'Adjective7']
result = [''.join(c for c in w if c.isalpha()) for w in words]
print(result)
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']
words = ['Duration12', 'Noun1', 'Adjective7']
results = [i.strip('0123456789') for i in words]
print(results) #give ['Duration', 'Noun', 'Adjective']