格式化时可以将字符串转换为大写吗
Can you cast a string to upper case while formating
动机
假设您有一个字符串在一个字符串中使用了两次。但是,在一种情况下它较高,而另一种情况下它较低。如果使用字典,似乎解决方案是添加一个大写的新元素。
假设我有一个 python 字符串准备格式化为:
string = "{a}_{b}_{c}_{a}"
所需输出为:
HELLO_by_hi_hello
我还准备了一本字典:
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
不,你不能那样做。
在最简单的解决方案中,您可以编写一个 lambda 来将字符串中的值大写。或者,如果你真的想以这种方式实现你的目标,你可以继承 strnig.Formatter。
如果您要采用更难的方法,则遵循 link 可以提供帮助。
Python: Capitalize a word using string.format()
是的,你可以这样做:
string = "{d.upper()}_{b.lower()}_{c.lower()}_{a.lower()}"
动机
假设您有一个字符串在一个字符串中使用了两次。但是,在一种情况下它较高,而另一种情况下它较低。如果使用字典,似乎解决方案是添加一个大写的新元素。
假设我有一个 python 字符串准备格式化为:
string = "{a}_{b}_{c}_{a}"
所需输出为:
HELLO_by_hi_hello
我还准备了一本字典:
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
不,你不能那样做。 在最简单的解决方案中,您可以编写一个 lambda 来将字符串中的值大写。或者,如果你真的想以这种方式实现你的目标,你可以继承 strnig.Formatter。
如果您要采用更难的方法,则遵循 link 可以提供帮助。 Python: Capitalize a word using string.format()
是的,你可以这样做:
string = "{d.upper()}_{b.lower()}_{c.lower()}_{a.lower()}"