如何在未来使它变得更Python化或更具可读性?

时间:2018-08-28 17:15:33

标签: python python-2.x

我有一个由多个单词组成的字符串,它们与_(例如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化和可读性?

1 个答案:

答案 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()也比手动执行字符串操作更安全:如果字符串为空,那么它们仍然可以工作。