【发布时间】:2017-11-27 22:50:47
【问题描述】:
我有以下字符串列表:
data = ['1 General Electric (GE) 24581660 $18.19 0.04 0.22 ',
'2 Qudian ADR (QD) 24227349 12.22 -3.93 -24.33 ',
'3 Square Cl A (SQ) 16233308 48.86 0.05 0.10 ',
'4 Teva Pharmaceutical Industries ADR (TEVA) 15830425 13.70 0.22 1.63 ',
'5 Vale ADR (VALE) 14768221 10.98 0.21 1.95 ',
'6 Bank of America (BAC) 13938799 26.59 -0.07 -0.26 ',
'7 Entercom Communications Cl A (ETM) 13087209 12.00 0.10 0.84 ',
'8 Chesapeake Energy (CHK) 12948648 3.92 -0.05 -1.26 ',
"9 Macy's (M) 12684478 21.07 0.44 2.13 "]
其中每个字符串的格式是:count、stock name、volume、一些其他 int 值...
我需要将这些字符串拆分为一个列表,其中每个元素都是上述字符串格式中的一项,这就是我尝试这样做的方式:
for i in range(1, len(data)-1):
split = data[i].split()
temp = "{} {} {}".format(split[1], split[2], split[3])
del split[2 : 4]
split[1] = temp
print(split)
但是,我认为这是低效的,并且当名称多于或少于两个单词时它不起作用。我将如何处理?我是否必须首先调整生成字符串(数据)列表的方式?
编辑:
final_data = [
re.split('(?<=\))\s+|(?<=[\d\$-])\s(?=[\d\$-])|(?<=\d)\s(?=[a-zA-Z])', i)
for i in data[1]]
final_data = [i[:-1]+[i[-1][:-1]] for i in final_data]
print(final_data)
输出:
~/workspace $ python extract.py 2017-11-27-04-26-51-ss.xhtml
[[''],
[''],
[''],
...,
[''],
[''],
['']]
【问题讨论】: