2017-06-01 79 views
2

如何打印列表的下一个值代替%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

我在学习Python。我已经在Web教程中找到%格式化示例。它出什么问题了?我应该如何以适当的方式书写它? – Ethr

+0

您应该使用已经取代'%'方法的'.format'。而在Python3.6上,你可以使用f-strings而不是'format'! –

回答

4

您可以使用format,并使用*列表中的解压值作为参数传递给format方法:

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

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

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

或转换到Python 2中的元组:

>>> ("%s:%s-%s:%s")%tuple(hours) 
'14:15-18:30' 
相关问题