首页 > 解决方案 > 如何取消分组列表?

问题描述

我有嵌套列表列表:

non_linear_list = [['testtest', '2020-06-17 12:40:23', 12.0000000000000, '20 USt', 2.0, 'Postage', '0'], 
                  ['testtest', '2020-06-17 12:40:23', 1.00000000000000, '10 USt', 0.09, 'Bad Debt', '0']]

我想取消对这些列表的分组,使它们如下所示:

['testtest', '2020-06-17 12:40:23', 12.0000000000000, '20 USt', 2.0, 'Postage', '0'], 
['testtest', '2020-06-17 12:40:23', 1.00000000000000, '10 USt', 0.09, 'Bad Debt', '0']

我正在尝试使用以下代码来实现:

    print([val for sublist in non_linear_list for val in sublist])

但是使用这段代码,我嵌套了所有列表并只得到一个列表:

['testtest', '2020-06-17 12:40:23', 12.0000000000000, '20 USt', 2.0, 'Postage', '0', 'testtest', '2020-06-17 12:40:23', 1.00000000000000, '10 USt', 0.09, 'Bad Debt', '0']

谁能帮助我如何获得正确的结果?

标签: python

解决方案


如果问题只是打印没有环绕的列表[...],最简单的方法是循环:

for x in non_linear_list:
    print(x)

或者,如果您更喜欢单行,则可以使用print(*...). 与循环一样,这*意味着“打印列表的每个部分,而不是整个列表”。

print(*non_linear_list, sep="\n")

如果您确实想“取消分组”列表,如注释中所述,您可以将它们分配给两个(或更多)变量(然后打印它们,或者对它们做任何其他事情):

a, b = non_linear_list
print(a)
print(b)

每种方式,输出是

['testtest', '2020-06-17 12:40:23', 12.0, '20 USt', 2.0, 'Postage', '0']
['testtest', '2020-06-17 12:40:23', 1.0, '10 USt', 0.09, 'Bad Debt', '0']

推荐阅读