【问题标题】:Python string insertionPython 字符串插入
【发布时间】:2012-07-01 23:30:36
【问题描述】:

我记得知道有一种简单的方法可以很容易地在 Python 中将字符串段插入到其他字符串中,但我不记得它是如何完成的。例如,假设我正在使用 Python 编辑 HTML,它看起来像这样:

<html>
  <b>Hello, World!</b>
  <b>%</b>
</html>

所以,假设这段 HTML 代码存储在一个名为 html 的变量中。现在,假设我想操作这段代码并输入以下字符串“我的名字是 Bob”,而不是第二个 b 标记中的 %。

如果有人知道我在说什么,请回答,这是我想使用的一个非常酷的功能。谢谢!

【问题讨论】:

标签: python insertion


【解决方案1】:

您可以附加 % 和一组值:

name = "Bob"
html = "Hello, %s" % (name)

或命名占位符并使用字典:

html = "Hello, %(name)s" % { name: name }

或使用str.format()

html = "Hello, {0}".format("name")

这三个结果都是一个字符串Hello, Bob

你也可以像这样不绑定字符串

html = "Hello, %s" 

然后在必要时绑定占位符

print html
>>> Hello, %s
for name in ["John", "Bob", "Alice"]:
    print html % name
>>> Hello, John
>>> Hello, Bob
>>> Hello, Alice

【讨论】:

  • .format() 的插入字符串序号从 0 开始,因此示例应为 html = "Hello, {0}".format("name")
【解决方案2】:
html='''<html>
  <b>Hello, World!</b>
  <b>%s</b>
</html>''' % "My name is Bob"

这是简单的字符串格式化。也可以使用下面的(可以多次使用{variable}在多个地方插入):

html='''<html>
  <b>Hello, World!</b>
  <b>{variable}</b>
</html>'''.format(variable="My name is Bob")

如果您想替换其中的每个“%”,您可以使用以下内容:

html='''<html>
  <b>Hello, World!</b>
  <b>%</b>
</html>'''.replace('%','Hello my name is Bob')

【讨论】:

    【解决方案3】:

    有一种使用字符串模板的简单方法

    有示例代码

    import string
    
    htmlTemplate = string.Template(
    """
    <html>
    <b>Hello, World!</b>
    <b>$variable</b>
    </html>
    """)
    
    print htmlTemplate.substitute(dict(variable="This is the string template"))
    

    你可以用 $ 在模板字符串中定义你的变量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      相关资源
      最近更新 更多