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
_TypeError(类型 'List<dynamic>' 不是类型 'Map<String, dynamic> 的子类型