作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Ruby 示例:
name = "Spongebob Squarepants"
puts "Who lives in a Pineapple under the sea? \n#{name}."
成功的 Python 字符串连接对我来说似乎很冗长。
最佳答案
Python 3.6 将添加 literal string interpolation类似于 Ruby 的字符串插值。从该版本的 Python(计划于 2016 年底发布)开始,您将能够在“f-strings”中包含表达式,例如
name = "Spongebob Squarepants"
print(f"Who lives in a Pineapple under the sea? {name}.")
在 3.6 之前,最接近这个的是
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? %(name)s." % locals())
%
运算符可用于 string interpolation在 Python 中。第一个操作数是要插值的字符串,第二个操作数可以有不同的类型,包括“映射”,将字段名称映射到要插值的值。这里我使用了局部变量字典 locals()
将字段名 name
映射到它的值作为一个局部变量。
使用最新 Python 版本的 .format()
方法的相同代码如下所示:
name = "Spongebob Squarepants"
print("Who lives in a Pineapple under the sea? {name!s}.".format(**locals()))
还有string.Template
类:
tmpl = string.Template("Who lives in a Pineapple under the sea? $name.")
print(tmpl.substitute(name="Spongebob Squarepants"))
关于python - 是否有与 Ruby 的字符串插值等效的 Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450592/
我是一名优秀的程序员,十分优秀!