我有一个元组列表:
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
问题是,列表的长度各不相同。
答案 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