以下哪个版本与另一个版本有何不同?
以下代码返回字符串大写的单词的第一个字母:
s = ' '.join(i[0].upper() + i[1:] for i in s.split())
以下代码仅打印最后一个单词,其中每个字符用空格分隔:
for i in s.split():
s=' '.join(i[0].upper()+i[1:]
print s
答案 0 :(得分:2)
为了完整性以及通过搜索引擎找到此问题的人,将字符串中每个单词的第一个字母大写的正确方法是使用title
方法。
>>> capitalize_me = 'hello stackoverlow, how are you?'
>>> capitalize_me.title()
'Hello Stackoverlow, How Are You?'
答案 1 :(得分:1)
for i in s.split():`
此时i
就是一个词。
s = ' '.join(i[0].upper() + i[1:])
这里,i[0]
是字符串的第一个字符,i[1:]
是字符串的其余部分。因此,这是s = ' '.join(capitalized_s)
的捷径。 str.join()
方法将单个可迭代的参数作为参数。在这种情况下,iterable是一个字符串,但没有区别。对于诸如' '.join("this")
之类的内容,str.join()
遍历iterable的每个元素(字符串的每个字符)并在每个元素之间放置一个空格。结果:t h i s
但是,您可以更轻松地执行所需操作:s = s.title()