在python中将字典传递到字符串
我试图使用键值对格式化字符串,其中字符串中的变量修饰符由键的名称引用 我该怎么办?这是我的密码:在python中将字典传递到字符串,python,string,dictionary,Python,String,Dictionary,我试图使用键值对格式化字符串,其中字符串中的变量修饰符由键的名称引用 我该怎么办?这是我的密码: given_string2 = "I'm %(name)s. My real name is %(nickname)s, but my friends call me %(name)s." def sub_m(name, nickname): return given_string2 %{name:nickname} print sub_m("Mike","Goose") 可以简单地使用位
given_string2 = "I'm %(name)s. My real name is %(nickname)s, but my friends call me %(name)s."
def sub_m(name, nickname):
return given_string2 %{name:nickname}
print sub_m("Mike","Goose")
可以简单地使用位置参数,如下所示:
given_string2 = "I'm {0}. My real name is {1}, but my friends call me {0}."
def sub_m(name, nickname):
return given_string2.format(name, nickname)
print sub_m("Mike","Goose")
{}
格式化程序引用应用于字符串的format()
方法的0索引位置参数。我不认为您正在以您认为的方式创建字典。%名称和%(昵称)占位符必须引用您传递的字典中的有效键。因此,您需要以下内容:
def sub_m(name, nickname)
print "I'm %s. My real name is %s, but my friends call me %s" % (name, nickname, name)
'the quick brown %(animal)s jumped over the %(adjective)s dog' % {"animal": "fox", "adjective": "lazy"}
你拥有的是一本字典,上面有一个键“Mike”,值为“Goose”。如果您将原始字符串中的%(name)s和%(昵称)s更改为%(Mike)s,您将被替换3次。您的问题在于:
given\u string2%{name:昵称}
这项工作:
>>> "I'm %(name)s. My real name is %(nickname)s, but my friends call me %(name)s." % {'name': "Mike", 'nickname': "Goose"}
"I'm Mike. My real name is Goose, but my friends call me Mike."