如何使用值元组格式化字符串,例如使用 %(name)s

Posted

技术标签:

【中文标题】如何使用值元组格式化字符串,例如使用 %(name)s【英文标题】:How to format strings with tuples of values like using %(name)s 【发布时间】:2021-05-27 19:45:45 【问题描述】:

我总是看到通过在模符号和 s 字符之间放置值元组来格式化字符串,例如在 Formatterfmt 参数参数的字符串中使用 Python 日志记录模块中的 %(levelno)s:%(message)s instance 将以格式字符串返回消息和级别编号,我一直想知道它是如何创建该格式系统的。如何制作这样的格式化系统?

【问题讨论】:

【参考方案1】:

您可以将元组传递给 print 调用,并将 %s 用于字符串,%d 用于十进制数,%f 用于浮点数,等等。

% 用作字符串格式化运算符,而不是取模。

>>> print("We can represent %s with a rounded %f" % ("pi", 3.14))
"We can represent the number pi with a rounded 3.14"

这里的文档:% (String Formatting Operator)

【讨论】:

谢谢@chemicalwill,但这不是我想要的。【参考方案2】:

我认为您正在寻找的是使用模运算符 (%s) 格式化字符串以及使用 dict 映射格式值,如下所示: print('Hello, %(name)s!' % 'name': 'Jack')

【讨论】:

@MarcoEl-Korashy 是的,这就是我想要的。非常感谢!

以上是关于如何使用值元组格式化字符串,例如使用 %(name)s的主要内容,如果未能解决你的问题,请参考以下文章

详解C# Tuple VS ValueTuple(元组类 VS 值元组)

详解C# Tuple VS ValueTuple(元组类 VS 值元组)

详解C# Tuple VS ValueTuple(元组类 VS 值元组)

详解C# Tuple VS ValueTuple(元组类 VS 值元组)

为什么我需要将方法强制转换为`Action`或`Func`以在值元组中使用它?

C#关键字扫盲——Tuple(元组类) ValueTuple(值元组)