如何解压缩无限长度列表

时间:2013-05-03 15:55:10

标签: python list python-2.7

我有一个元组列表:

my_lst = [('2.0', '1.01', '0.9'), ('-2.0', '1.12', '0.99')]

我正在寻找解压缩每个值的解决方案,以便打印出逗号分隔的值行:

2.0, 1.01, 0.9, -2.0, 1.12, 0.99

问题是,列表的长度各不相同。

5 个答案:

答案 0 :(得分:4)

两次使用join

>>> lis=[('2.0', '1.01', '0.9'), ('-2.0', '1.12', '0.99')]
>>> ", ".join(", ".join(x) for x in lis)
'2.0, 1.01, 0.9, -2.0, 1.12, 0.99'

答案 1 :(得分:4)

使用可以使用itertools chain(..)

>>> from itertools import chain
>>> my_lst = [('2.0', '1.01', '0.9'), ('-2.0', '1.12', '0.99')]
>>> list(chain(*my_lst))
['2.0', '1.01', '0.9', '-2.0', '1.12', '0.99']

然后用“,”加入他们。

>>> ",".join(list(chain(*my_lst)))
'2.0,1.01,0.9,-2.0,1.12,0.99'

答案 2 :(得分:1)

for i in my_lst:
    for j in i:
        print j, ", "

答案 3 :(得分:1)

还有标准的2-D可迭代展平机制:

>>> ', '.join(x for y in lis for x in y)
'2.0, 1.01, 0.9, -2.0, 1.12, 0.99'

虽然我更喜欢chain.from_iterable

答案 4 :(得分:1)

您可以使用itertools.chain,如下所示:

list(itertools.chain(*lst))

或使用以下功能:

def chain(*iters):
    for it in iters:
        for elem in it:
            yield elem