我已经写了一个简单的程序,将采取字符串的第一个字母并将其大写。理解列表vs for循环
def initials(text):
words = text.split()
a=[word[0].upper() for word in words]
b = '. '.join(a) + '.'
return b
text = "have a good day sir"
print(initials(text))
这会给我想要通过使用列表理解的结果。然而 我不能让它通过一个典型的for循环下面工作,它会给我只有最后一次迭代:
def initials(text):
words = text.split()
for word in words:
a=word[0].upper()
b = '.'.join(a) + '.'
return b
text = "have a good day sir"
print(initials(text))
任何想法,为什么第二个示例不作为第一个工作?
因为在你的第二个'initials'函数中,'b'中的每个单词都会更新'b' ...你不会“跟踪”前面的首字母。 – blacksite
您需要将结果添加到新列表中,然后传递给'join' – pylang
写入'a + = word [0] .upper()'并采用语句'b ='。join(a)+'。 ''出于for循环 – phynfo