也许模式替换不是正确的词,但我不知道还能怎么称呼它。我想取一个字符串,比如“嗨,我的名字是名字,我今年几岁”或其他什么,并务实地填写这些值。最好的方法是什么(再次,在 python 中)
问问题
144 次
4 回答
3
你想要字符串格式。
你从这样的字符串开始:
s = 'Hi my name is {name} and I am {age} years old'
现在,当您需要时,您可以使用str.format
“填写值”的方法。
>>> s.format(name='John', age=42)
Hi my name is John and I am 42 years old
这样做是用{}
给定的材料替换大括号 () 中的内容。
请注意,此方法优于使用%
运算符进行格式化,并且是 Python 3 中的标准。
于 2013-03-12T06:16:39.540 回答
2
试试这个:
name, age = 'Art', 20
myStr = "hi my name is {0} and I am a {1} years old"
print myStr.format(name, age)
或者:
myStr = "hi my name is %(name)s and I am a %(age)i years old"
print myStr % {'name': name, 'age': age}
或者:
myStr = "hi my name is %s and I am a %i years old"
print myStr % (name, age)
于 2013-03-12T06:16:06.983 回答
0
你可以看看 python re http://docs.python.org/2/library/re.html
>>> import re
>>> thing = "hi my name is placeholder"
>>> thing = re.sub("placeholder", "Fred", thing)
>>> thing
"hi my name is Fred"
于 2013-03-12T06:18:50.283 回答
0
以上所有答案都是有效的。现在我提供了一个使用字符串 Template的方法。
from string import Template
s = Template("hi my name is ${name} and I am ${age} years old")
s.substitute(name='Bill', age=24)
# 'hi my name is Bill and I am 24 years old'
您可能想使用相关方法safe_substitute ,并在此处找到更多信息。
于 2013-03-12T06:36:53.587 回答