如何在python中删除分号之前的所有字母?

时间:2018-11-30 14:03:17

标签: python string

字符串:

  

“ Jack; 10; 20; 30 \ n Omar; 20,24,25 \ n Carl; 30; 30; 30 \ n”

如何使用地图删除或过滤字符串中的所有名称?

str = filter( x.isdigit() , for x str)

但是它似乎无法正常工作。

3 个答案:

答案 0 :(得分:1)

仅使用split怎么样:

str = "Jack;10;20;30\n Omar;20,24,25\n Carl;30;30;30\n"
output_list = [line.split(";")[1:] for line in str.split("\n")]
output = [";".join(line) for line in output_list]
>>>['10;20;30', '20,24,25', '30;30;30', '']

答案 1 :(得分:0)

您可以split字符串,将结果列表切片,然后使用相同的定界符将join重新切片成字符串:

s = "Jack;10;20;30\n Omar;20,24,25\n Carl;30;30;30\n"
print('\n'.join(';'.join(l.split(';')[1:]) for l in s.splitlines()))

这将输出:

10;20;30
20,24,25
30;30;30

答案 2 :(得分:0)

在您的具体情况下,您可以使用python内置的re并列出列表。

>>> import re
>>> text = "Jack;10;20;30\n Omar;20,24,25\n Carl;30;30;30\n"
>>> [number for number in re.split(';|,| |\n|', text) if number.isdigit()]
['10', '20', '30', '20', '24', '25', '30', '30', '30']

re.split;,\n

分割字符串

列表理解可创建数字元素列表。