Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将字典传递到字符串_Python_String_Dictionary - Fatal编程技术网

在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."