我有一个由多个单词组成的字符串,它们与_
(例如hello_my_name_is_john_doe_good_day
)相关。我想将此字符串转换为John Doe
。
我目前有
tempStr0 = "hello_my_name_is_john_doe_good_day"
tempStr1 = tempStr0.split("_")[4:6]
tempStr2 = (tempStr1[0][0].upper() + tempStr1[0][1:] + " " + tempStr1[1][0].upper() + tempStr1[1][1:])
print(tempStr2)
# John Doe
这显然可以工作,但是看起来很丑。谁能提出一些建议,建议我如何清理它,使其在将来变得更加Python化和可读性?
答案 0 :(得分:2)
我们可以使用.title()
来处理各个子字符串,并使用' '.join(..)
将它们组合在一起,例如:
tempStr2 = ' '.join(sube.title() for sube in tempStr1)
这将大写每个单词。由于子元素可能是单个单词,因此我们也可以使用.capitalize()
:
# alternative
tempStr2 = ' '.join(sube.capitalize() for sube in tempStr1)
有趣的是,如果tempStr1
包含多个元素,它也会添加这些单词,并用空格分隔。
此外,.title()
和.capitalize()
也比手动执行字符串操作更安全:如果字符串为空,那么它们仍然可以工作。