gpt4 book ai didi

python - 从 Python 中的字符串中去除除数字和小数点以外的所有内容的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:40 26 4
gpt4 key购买 nike

我正在使用 Python 2.7 读取一个 ASCII 数据流,其中包括带小数位的非负数,但也包括“垃圾字符”,包括不可打印的字符、字母和标点符号。我可以通过这种方式去掉不可打印的内容:

rawdata2 = filter(lambda x: x in string.printable, rawdata)

但是留下这样的字符串:

Ri-G2015,2,20.23,9.13,273.1- ZW;w;K-;-A;B`R

去除除数字和小数点 (.) 以外的所有内容的好方法是什么,所以我只剩下这个:

2015,2,20.23,9.13,273.1

最佳答案

更快的方法是使用正则表达式:

import re

rawdata2 = re.sub('[^0-9,.]', '', rawdata)

这只是删除不在集合 0-9 , . 中的任何字符(通过用空字符串替换它们)。这比过滤 100 次重复输入字符串的方法快两倍多,而且更简洁。


最快的方法(如果您要处理大量文本)是使用 string.translate:

deltable = "".join(chr(c) for c in xrange(256) if chr(c) not in "0123456789,.")

rawdata2 = string.translate(rawdata, None, deltable)

这比您原来的过滤方法快 100 倍以上。

关于python - 从 Python 中的字符串中去除除数字和小数点以外的所有内容的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31031572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com