首页 > 解决方案 > TypeError:不支持的格式字符串传递给 list.__format__

问题描述

我有两个名为 results 和 p_results 的列表。我想在表格中显示这些列表值,例如 if

results = [1,2,3,4]
p_results = [5,6,7,8]

我想要这样的东西

1     5
2     6
3     7
4     8

        print('{:3}{:20}'.format(results, p_results))

运行代码:

runfile('D:/4/2d.py', wdir='D:/4')
Traceback (most recent call last):

  File "<ipython-input-59-1abb0c96f0c0>", line 1, in <module>
    runfile('D:/4/2d.py', wdir='D:/4')

  File "C:\Users\Rabinsen\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 668, in runfile
    execfile(filename, namespace)

  File "C:\Users\Rabinsen\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "D:/4/2d.py", line 61, in <module>
    print('{:3}{:20}'.format(results, p_results))

TypeError: unsupported format string passed to list.__format__

标签: pythonliststring-formatting

解决方案


一个技巧是解决间距部分:

'{:15}'.format('{}'.format([1,2,3]))

对于迭代两个列表:

[print('res:', i, ': p_res', j) for i, j in zip(results, p_results)]
res: 1 : p_res 5
res: 2 : p_res 6
res: 3 : p_res 7
res: 4 : p_res 8

结合格式化和压缩可以为您提供您想要实现的目标。


推荐阅读