我们知道可以使用字符串中的一个来格式化一个参数: %s
>>> "Hello %s" % "world"
'Hello world'
对于两个参数,我们可以使用两个%s
(duh!):
>>> "Hello %s, %s" % ("John", "Joe")
'Hello John, Joe'
那么,如何格式化可变数量的参数,而不必在基本字符串中显式定义数量%s
等于要格式化的参数数量?如果存在这样的东西会很酷:
>>> "Hello <cool_operator_here>" % ("John", "Joe", "Mary")
Hello JohnJoeMary
>>> "Hello <cool_operator_here>" % ("John", "Joe", "Mary", "Rick", "Sophie")
Hello JohnJoeMaryRickSophie
这甚至可能吗,或者我唯一能做的就是做类似的事情:
>>> my_args = ["John", "Joe", "Mary"]
>>> my_str = "Hello " + ("".join(["%s"] * len(my_args)))
>>> my_str % tuple(my_args)
"Hello JohnJoeMary"
注意:我需要使用%s
字符串格式化运算符来完成。
更新:
它需要与,%s
因为来自另一个库的函数使用该运算符格式化我的字符串,因为我传递了未格式化的字符串和 args 来格式化它,但它在实际制作之前对 args 进行了一些检查和更正(如果需要)格式化。
所以我需要调用它:
>>> function_in_library("Hello <cool_operator_here>", ["John", "Joe", "Mary"])
"Hello JohnJoeMary"
谢谢你的帮助!