如何拆分列表列表?

2024-09-29 17:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

 ['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函数时,它一次只对一个元素起作用。e、 g.num_lst = outputtest[0].split()给出:

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

这正是我想要的,但只占名单的三分之一。如何将split函数应用于给定列表中的所有元素?我试过
num_lst = outputtest[1:-1].split()
并且它给出了一个错误,说明split对列表对象不起作用


Tags: 对象函数元素列表错误numsplit名单
2条回答

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

第二,我们基本上希望分割所有字符串,然后展平列表的结果列表。有多种方法可以做到这一点,例如,我们可以使用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)

相关问题 更多 >

    热门问题