如何使用列表中的值格式化字符串?

时间:2017-06-01 22:19:29

标签: python string list python-3.x format

如何打印列表的下一个值代替%s?下面的代码显示了我希望得到的结果,但我不想手动编写每一步。

hours=["14","15","18","30"]
print (("%s:%s-%s:%s")%(hours[0],hours[1],hours[2],hours[3]))

有没有办法做这样的事情:

print (("%s:%s-%s:%s")%hours)

并使其有效?

2 个答案:

答案 0 :(得分:5)

您可以直接在Python 3中使用解包:

>>> ("%s:%s-%s:%s")%(*hours,)
'14:15-18:30'

或者转换为Python 2中的元组:

>>> ("%s:%s-%s:%s")%tuple(hours)
'14:15-18:30'

答案 1 :(得分:4)

您可以使用format,并使用*将列表中的值解压缩为format方法的参数:

"{}:{}-{}:{}".format(*hours)
# '14:15-18:30'