![](/img/trans.png)
[英]How to remove all non-numeric characters (except operators) from a string in Python?
[英]How to remove all non numeric characters from a python 3 list?
有人可以帮助我:
从这个python3列表:
['{', ' "100": {', ' "AT": {', ' "av": -64.519, ', ' "ct": 17754, ', ' "mn": -96.023, ', ' "mx": -14.294', ' }, ', ' "First_UTC": "2019-03-08T23:09:35Z", ']
我需要列出这个清单:
[100,-64.519,17754,-96.023,14.294,2019-03-08T23:09:35Z]
这应该是您需要的最接近的。 尽可能将值转换为float
,并将其余值转换为datetime
对象
import re
import datetime
res=[]
a=['{', ' "100": {', ' "AT": {', ' "av": -64.519, ', ' "ct": 17754, ', ' "mn": -96.023, ', ' "mx": -14.294', ' }, ', ' "First_UTC": "2019-03-08T23:09:35Z", ']
for i in a:
m=re.search('([-]?\d{1,}[.\d]?[\w:-]*)',i)
if m:
try:
tmp = float(m.group(0))
except:
tmp = datetime.datetime.strptime(m.group(0), '%Y-%m-%dT%H:%M:%SZ')
res.append(tmp)
输出
[100.0,
-64.519,
17754.0,
-96.023,
-14.294,
datetime.datetime(2019, 3, 8, 23, 9, 35)]
您的输入:
l=['{', ' "100": {', ' "AT": {', ' "av": -64.519, ', ' "ct": 17754, ', ' "mn": -96.023, ', ' "mx": -14.294', ' }, ', ' "First_UTC": "2019-03-08T23:09:35Z", ']
_
分两步:
l1= [re.sub("[^0-9-]", "", x) for x in l]
现在,您可以删除空文字并将其全部作为字符串。
l2=[x for x in l1 if x!=""]
您也可以转换为 int,除了最后一个,因为“2019-03-08T23:09:35Z”不是有效文字
l3 = [int(x) for x in l2[:-1]]
print(l3)
[100, -64519, 17754, -96023, -14294]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.