简体   繁体   English

在Python 3中将字符串与数学符号连接

[英]Concatenating strings with mathematical symbols in Python 3

I created a dictionary for peoples' names as such: 我为人们的名字创建了一个字典,如下所示:

names = {"first": , "second": , "third":}

What I want to do is call each name and combine them as a string, being separated by a plus sign. 我想做的是调用每个名称,并将它们组合为一个字符串,并用加号分隔。 Below is a tedious way of doing it: 下面是一种乏味的方法:

str(names["first"]) + "+" + str(names["second"]) + "+" + str(names["third"])

This line is from a larger module I am attempting to create. 这行是我尝试创建的较大模块的。 I tried to following for simplicity, but it resulted in a syntax error: 为了简单起见,我尝试遵循以下步骤,但是导致语法错误:

str(names["first"] "%+d" + names["second"] "%+d" + names["third"])

Is there a way of simplifying the above so that it prints: 有没有一种方法可以简化上面的内容以便打印出来:

firstname+secondname+thirdname 姓名+ secondname + thirdname

In python 2 you have to use the slightly hacky 在python 2中,您必须使用稍微hacky

"{first}+{second}+{third}".format(**names)

However, as GingerPlusPlus points out, in python 3 you can get away from this **kwargs chicanery and instead use format_map 但是,正如GingerPlusPlus所指出的那样,在python 3中,您可以摆脱这种**kwargs束缚,而使用format_map

"{first}+{second}+{third}".format_map(names)

如果可以使用namedtuple而不是dict来存储名称,则建议:

'+'.join(map(str, names))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM