我有这样一组数据:
List = [_"0,0,0,0,000001.SZ,0,0,0,0"_ **,** _"0,0,0,0,000002.SZ,0,0,0,0"_ **,** ······]
每一个list的每一个元素,都是一个String,这个String的长度不固定(因为行情信息可能为NaN),但是每个元素的逗号数量是确定的。
我需要提取每一个元素当中的股票代码,也就是000001.SZ这样的。
我尝试了用split(",")
将每个元素分隔开,然后提取固定一列就好。
但这种方法太耗费时间和内存。
请问有没有其他的方法可以提取出每个元素中的股票代码?
尽可能的快速,节省内存。
使用正则校验,6位数字+"."+2位字母
# -*- coding: utf-8 -*-
# coding:unicode_escape
#Created on 2022年02月24日
#@author: LinHuang
#stock list
from ast import For
import re
if __name__ == '__main__':
List = ["0,0,0,0,000001.SZ,0,0,0,0","0,0,0,0,000002.SZ,0,0,0,0","0,0,0,0,000003.SZ,0,0,0,0"]
for index in List:
# string = "0,0,0,0,000001.SZ,0,0,0,0"
stock_list = re.findall(r'([0-9]{6,6}.[a-zA-Z]{2,2})', index) # 股票
print(stock_list)
# 输出
# ['000001.SZ']
# ['000002.SZ']
# ['000003.SZ']
如果股票形式固定的话建议使用正则,r'\d+.[A-Z]+'
用正则匹配啊
import re
a="0,0,0,0,000001.SZ,0,0,0,0"
r=re.compile(r"\d+\.\w{2}")
r.search(a).group()