如何使用 format() 将嵌套列表打印为 table?

How can I use format() to print out nested lists as a table?

如何使用 format() 打印出与预期输出类似的 table?我试过但出现错误:

unsupported format string passed to list.__format__
data = [[1, [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]], 
        [2, [1, 2, -999, 4, 5], [1, 2, 3.0, 4, 5]]]

print ("{:<10} {:<20} {:<20}".format('Test Case','Original','Clean-Up'))

for item in data:
    testcase, original, clean = item
    print ("{:<10} {:<50} {:<50}".format(testcase, original, clean))

预期输出:

    test case    original             clean-up
        1       1, 2, 3, 4, 5        1, 2, 3, 4, 5
        2       1, 2, -999, 4, 5     1, 2, 3.0, 4, 5

试试这个:

for item in data:
    testcase, original, clean = item
    print ("{:<10} {:<20} {:<10}".format(testcase, ', '.join(str(i) for i in original), ', '.join(str(i) for i in clean)))

输出:

Test Case  Original             Clean-Up
1          1, 2, 3, 4, 5        1, 2, 3, 4, 5
2          1, 2, -999, 4, 5     1, 2, 3.0, 4, 5

尝试使用此代码:

for item in data:
    testcase, original, clean = item
    print ("{:<10} {:<20} {:<10}".format(testcase, ', '.join(map(str, original)), ', '.join(map(str, clean))))

输出:

Test Case  Original             Clean-Up            
1          1, 2, 3, 4, 5        1, 2, 3, 4, 5
2          1, 2, -999, 4, 5     1, 2, 3.0, 4, 5

我使用了 str.joinmap 来使代码工作。