繁体   English   中英

如何从python 3列表中删除所有非数字字符?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM