【问题标题】:Concatenating strings with mathematical symbols in Python 3在 Python 3 中将字符串与数学符号连接起来
【发布时间】:2015-10-03 01:11:01
【问题描述】:

我为人们的名字创建了一个字典:

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

我想要做的是调用每个名称并将它们组合为一个字符串,用加号分隔。以下是一种乏味的做法:

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

这条线来自我正在尝试创建的一个更大的模块。为了简单起见,我尝试遵循,但导致语法错误:

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

有没有办法简化上述内容以便打印:

名字+第二个名字+第三个名字

【问题讨论】:

  • 你的字典 names 只包含键,没有值。
  • 正如@bouvierr 所说,您的字典没有值。在您的 OP 中,当您说:"firstname+secondname+thirdname" 如果您的字典实际上有值,您是否真的希望 name 成为字典中值的名称?
  • 不,抱歉,我忽略了输入名称。我的代码中确实有它们。

标签: python string dictionary concatenation


【解决方案1】:

在 python 2 中你必须使用稍微 hacky

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

但是,正如 GingerPlusPlus 指出的那样,在 python 3 中,您可以摆脱这种 **kwargs 诡计,而是使用 format_map

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

【讨论】:

  • 该死的,我真的应该忘记我在编写 python 2 代码时必须使用的所有技巧。
  • 非常感谢大家。真的很欣赏它!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2020-07-31
    • 2018-01-06
    相关资源
    最近更新 更多