我试图得到这个代码:
line = input("String: ")
letters = ""
words = line.split()
for word in words:
letters = letters + word[0]
print(" ".join(letters))
String = I have a dog
Result: I h a d
打印结果如下:
I
h
a
d
将您的print语句更改为这个
print("n".join(letters))
n
是新的行字符,这就是为什么。
出于好奇,您可以将代码简化为:
line = input("String: ")
letters = map(lambda word: word[0], line.split())
print("n".join(letters))
在@Capies的答案之上。您可以将代码简化为:
>>> x = "what is foo bar"
>>> "n".join([i[0] for i in x.split()])
'wninfnb'
打印为
>>> print('wninfnb')
w
i
f
b
解释:
[i[0] for i in x.split()]
i[0]
是x
中每个单词的首字母。- 由于
for i in x.split()
是字符串x
中单词的迭代
然后join
每个字母加一个换行字符n
加"n".join
使用列表推导式
[print(word[0]) for word in input().split()]