我很惊讶python的百分比样式格式将不接受列表,而似乎仅接受元组。这里的元组有什么特别之处?为什么列表会引发错误?

In [1]: '%s %s' % ('hello', 'kilojoules')
Out[1]: 'hello kilojoules'

In [2]: '%s %s' % ['hello', 'kilojoules']
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-764f27542c69> in <module>
----> 1 '%s %s' % ['hello', 'kilojoules']

TypeError: not enough arguments for format string

最佳答案

格式化字符串的方式是一种特殊的语法。在您显示的列表示例中,它将非元组(列表)转换为字符串,然后尝试将其用于格式化目的。

您可以使用format方法来完成您想做的事情。

In [1]: "{} {}".format(*['hello', 'kilojoules'])


无论如何,建议还是使用这种方式进行操作,as it is preferred

关于python - 为什么python字符串格式需要一个元组?为什么列表不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56728749/

10-12 12:21
查看更多