如何拆分列表列表?

我有以下输出,它是由三个元素组成的列表:

 ['out1    : (   83.25,78.32)  *33.90*     2.29    2.14    0.82    65.95','out2    : (  101.80,95.10)  *31.73*    12.05    0.60    0.96   -26.46','out3    : (   49.84,42.29)  *33.19*     6.54    1.24    0.50    67.42']

我想将其拆分,以使其成为一个由多个元素组成的单独列表。当我使用split函数时,一次只能处理一个元素。例如num_lst = outputtest[0].split()给出:

['out1',':','(','83.25,','78.32)','*33.90*','2.29','2.14','0.82','65.95']

这是我想要的,但仅占列表的1/3。如何将split函数应用于给定列表的所有元素?我尝试过了
num_lst = outputtest[1:-1].split()  
,它给出一个错误,指出拆分不适用于列表对象。

zxxzsa 回答:如何拆分列表列表?

首先,请注意,输入的内容不是列表列表,而是字符串列表。

第二,我们基本上要拆分所有字符串,然后将结果列表列表展平。有多种方法可以执行此操作,例如,可以使用itertools.chain

from itertools import chain

out = list(chain(*[s.split() for s in input]))

使用您的字符串列表作为输入,这将为我们提供:

>>> out
['out1',':','(','83.25,','78.32)','*33.90*','2.29','2.14','0.82','65.95','out2','101.80,'95.10)','*31.73*','12.05','0.60','0.96','-26.46','out3','49.84,'42.29)','*33.19*','6.54','1.24','0.50','67.42']
,
long_list = ['out1    : (   83.25,78.32)  *33.90*     2.29    2.14    0.82    65.95','out2    : (  101.80,95.10)  *31.73*    12.05    0.60    0.96   -26.46','out3    : (   49.84,42.29)  *33.19*     6.54    1.24    0.50    67.42']
out=[]
for i in range(len(long_list)):
    out = out + long_list[i].split()

print(out)
本文链接:https://www.f2er.com/3030222.html

大家都在问