在 Python 3 中连接带有数学符号的字符串
Concatenating strings with mathematical symbols in Python 3
我创建了一个人名字典:
names = {"first": , "second": , "third":}
我想做的是调用每个名称并将它们组合成一个字符串,用加号分隔。下面是一个繁琐的方法:
str(names["first"]) + "+" + str(names["second"]) + "+" + str(names["third"])
这一行来自我试图创建的一个更大的模块。为了简单起见,我尝试遵循以下步骤,但它导致了语法错误:
str(names["first"] "%+d" + names["second"] "%+d" + names["third"])
有没有办法简化上面的内容以便打印:
firstname+secondname+thirdname
在 python 2 中,您必须使用略显 hacky
"{first}+{second}+{third}".format(**names)
然而,正如 GingerPlusPlus 指出的那样,在 python 3 中,您可以摆脱这种 **kwargs
欺骗,而是使用 format_map
"{first}+{second}+{third}".format_map(names)
如果可以用namedtuple
代替dict
来存储名字,我建议:
'+'.join(map(str, names))
我创建了一个人名字典:
names = {"first": , "second": , "third":}
我想做的是调用每个名称并将它们组合成一个字符串,用加号分隔。下面是一个繁琐的方法:
str(names["first"]) + "+" + str(names["second"]) + "+" + str(names["third"])
这一行来自我试图创建的一个更大的模块。为了简单起见,我尝试遵循以下步骤,但它导致了语法错误:
str(names["first"] "%+d" + names["second"] "%+d" + names["third"])
有没有办法简化上面的内容以便打印:
firstname+secondname+thirdname
在 python 2 中,您必须使用略显 hacky
"{first}+{second}+{third}".format(**names)
然而,正如 GingerPlusPlus 指出的那样,在 python 3 中,您可以摆脱这种 **kwargs
欺骗,而是使用 format_map
"{first}+{second}+{third}".format_map(names)
如果可以用namedtuple
代替dict
来存储名字,我建议:
'+'.join(map(str, names))