TypeError:传递给list .__ format__的不支持的格式字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError:传递给list .__ format__的不支持的格式字符串相关的知识,希望对你有一定的参考价值。

我有两个名为results的结果列表和p_results。我想在表中显示那些列表值,如果

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__
答案

您可以将list类型传递给format(仅使用),但您请求的格式不可用。并且标准格式不适合,所以...

你想要的是一个单独的列上的每个列表。你必须将zip列表放在一起,并迭代结果以将其传递给格式:

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

for result,p_result in zip(results,p_results):
    print(':3:20'.format(result,p_result))

这打印像:

  1                   5
  2                   6
  3                   7
  4                   8
另一答案

你试过print(','.format(results[:3], p_results[:20]))吗?

你组织你的print的方式看起来像两种风格的组合,

print(f'results[:3], p_results[:20]')

print(', '.format(results[:3], p_results[:20]))

你的尝试是

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

这是您的错误的根源,在此示例中重现相同的错误:

>>> a = [1, 2, 3]
>>> print(':1'.format(a))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported format string passed to list.__format__

>>> print(''.format(a[:1]))
[1]

以上是关于TypeError:传递给list .__ format__的不支持的格式字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python debug——TypeError unhashable type(list/set/dict)

Python-TypeError: object() takes no parameters

thinkphp 如何想模板的JS代码中传递数组?

_TypeError(类型 'List<dynamic>' 不是类型 'Map<String, dynamic> 的子类型

_TypeError(类型'List<dynamic>'不是'Map<String,dynamic>'类型的子类型)

TypeError: %: 'list' 和 'int' 不支持的操作数类型 |很有趣的案例?