为什么 Python 格式功能不起作用?

Why Python format function is not working?

我在python中写道:

list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
    print('{:15}   {:30}   {:30}'.format([asset[0], asset[1], asset[2]]))

但我得到:

print('{:15}   {:30}   {:30}'.format([asset[0], asset[1], asset[2]]))
TypeError: non-empty format string passed to object.__format__

这是为什么?

不要将 format 参数包装在列表中:

list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
    #                              here  ↓                  and here ↓
    print('{:15}   {:30}   {:30}'.format(asset[0], asset[1], asset[2]))

输出:

A                 B                                C                             

更好的是,您可以使用参数扩展:

for asset in list_of_assets:
    print('{:15}   {:30}   {:30}'.format(*asset))

错误出现是因为您将列表参数传递给格式函数。改为传递列表的各个元素。

你的代码应该是这样的:

list_of_assets = []
list_of_assets.append(('A', 'B', 'C'))
for asset in list_of_assets:
    print('{:15}   {:30}   {:30}'.format(asset[0], asset[1], asset[2]))