社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何删除python中分号前的所有字母?[副本]

ERJAN • 5 年前 • 1847 次点击  

这个问题已经有了答案:

字符串:

“杰克;10;20;30\n奥马尔;20,24,25\n卡尔;30;30;30\n”

如何使用映射删除或筛选字符串中的所有名称?

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

但它似乎不能正常工作。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43288
 
1847 次点击  
文章 [ 3 ]  |  最新文章 5 年前
Josef Korbel
Reply   •   1 楼
Josef Korbel    6 年前

在您的示例中,可以使用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

列表理解创建元素列表,这些元素是数字。

blhsing
Reply   •   2 楼
blhsing    6 年前

你可以 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
Adam Dadvar
Reply   •   3 楼
Adam Dadvar    6 年前

使用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', '']