我有一个要使用格式字符串打印的列表。在 Python 3 风格中,使用 "a string".format(arg,arg,arg)
,这很容易。我可以用 *mylist
替换参数,比如
mylist = [1,2,3]
"{} {} {}".format(*mylist)
我似乎无法使用旧的百分比格式来完成这项工作。我试过像 "%i %i %i"% mylist
、%i %i %i"% (mylist)
和 %i % i %i"% (*mylist)
但我不断收到语法错误或“参数不足”。
这在 2.x 风格中是不可能的吗?
预计到达时间:我正在更改上面的示例,实际上我的意思是列表,而不是元组。我仍在学习,我不习惯使用两个不同的类似数组的结构。
最佳答案
str % tuple
应该可以正常工作。
>>> mylist = (1, 2, 3) # <---- tuple
>>> "%i %i %i" % mylist
'1 2 3'
顺便说一句,(1, 2, 3)
是元组文字,而不是列表文字。
>>> mylist = [1, 2, 3] # <----- list
>>> "%i %i %i" % mylist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not list
如果你想让它适用于列表,请将列表转换为元组。
>>> "%i %i %i" % tuple(mylist)
'1 2 3'
关于python - 在 Python 2 中,我可以将列表传递给百分比格式运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26427730/