格式化时,您可以将字符串施放到上情况下吗?



动机

假设您有一个在一个字符串中两次使用的字符串。但是,在一种情况下,它是较高的,另一个是较低的。如果使用了字典,则解决方案似乎是添加一个新元素。


假设我有一个python string准备的格式为:

string = "{a}_{b}_{c}_{a}"

带有所需的输出:

hello_by_hi_hello

我还准备了一个字典AS:

dictionary = {a: "hello", b: "bye", c: "hi"}

不与字典交互以将新元素 d设置为 "HELLO",例如:

dictionary['d'] = dictionary['a'].upper()
string = "{d}_{b}_{c}_{a}"
string.format(**dictionary)
print(string)
>>> HELLO_bye_hi_hello

有没有办法将元素a设置为在字符串的一种情况下始终成为大写?例如:

string= "{a:upper}_{b}_{c}_{a}"
string.format(**dictionary)
print(string)
>>> HELLO_bye_hi_hello

是的,您可以做到:

string = "{d.upper()}_{b.lower()}_{c.lower()}_{a.lower()}"

nope,你不能那样做。在最简单的解决方案中,您可以编写一个lambda来大写字符串中的值。或者,如果您真的想以这种方式实现自己的目标,则可以对strnig.formatter进行子类别。

如果您要使用更难的方法,则以下链接可以提供帮助。Python:使用String.format()

大写一个单词

相关内容

最新更新