【问题标题】:String formatting in a python dictionary like Ruby像Ruby这样的python字典中的字符串格式
【发布时间】:2015-03-20 16:57:49
【问题描述】:

在 Ruby 中,您可以执行以下操作:

a = 4
b = 5
match = {}
match["#{a}-#{b}"] = 0

那么,如果我说:

match["4-5"]

结果为 0。

我可以在 python 字典中做类似的事情吗?我似乎无法让字符串格式与字典一起使用。

编辑:

在 Python 3+ 中使用 f 字符串,现在可以执行以下操作:

match[f"{a}-{b}"] = 0

【问题讨论】:

  • 我认为最接近的方法是使用格式运算符:match["%d-%d" % (4, 5)] = 0
  • 这是我使用的 Python 等价物。

标签: python ruby language-comparisons


【解决方案1】:

问题

  • 如何在python中做ruby风格的字符串变量占位符。

解决方案

  • Python 有许多用于执行字符串变量插值的选项
  • 其中有几个突出的方法:
    • str.format 在 python 2.6 及以上版本中
    • f-strings 在 python 3.6 及以上版本中

示例

  import pprint
  ## using python str.format
  match     = {}
  a = 4
  b = 5
  match["{a}-{b}".format(a=a,b=b)] = 0
  pprint.pprint(match)
  pass

  ## result
  {'4-5': 0}      

另见

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 2011-02-19
    相关资源
    最近更新 更多