【问题标题】:How to format string with values from list?如何使用列表中的值格式化字符串?
【发布时间】:2017-11-03 05:14:40
【问题描述】:

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

并让它工作?

【问题讨论】:

  • 真正的问题:你为什么还在使用% 格式?
  • 我正在努力学习 Python。我在网络教程中找到了 % 格式化示例。它出什么问题了?应该怎么写才合适?
  • 您应该使用.format,它已经取代了% 方法。在 Python3.6 上,您可以使用 f-strings 代替 format!

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


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      相关资源
      最近更新 更多