我如何编辑这段代码,使它以某种方式打印结果?



我试图得到这个代码:

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()]

最新更新