Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除字符串列表中的所有数字_Python_List - Fatal编程技术网

Python 删除字符串列表中的所有数字

Python 删除字符串列表中的所有数字,python,list,Python,List,给我 ['Duration','Nou','adj'] 但是我想 [‘持续时间’、‘名词’、‘形容词’] 是否有任何库函数来实现它,或者我是否应该显式地检测可用的数字,然后删除它们?您可以使用列表理解,并使用re.sub删除所有数字: words = ['Duration12', 'Noun1', 'Adjective7'] result = [word[:-2] for word in words] 结果 您可以使用以下方法筛选出数字: 试试这个: words = ['Duration12'

给我

['Duration','Nou','adj']

但是我想

[‘持续时间’、‘名词’、‘形容词’]


是否有任何库函数来实现它,或者我是否应该显式地检测可用的数字,然后删除它们?

您可以使用列表理解,并使用
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']