繁体   English   中英

如何在一行中的列表中打印每个字符串的首字母?

[英]How do I print the first letter of each string in a list in one line?

对于我的任务之一,用户输入多个字符串,直到他们输入空白行,然后将其打印在一行中,这就是我的方法。

words = []
word = input("Word: ")

while word:
  words.append(word)
  word = input("Word: ")

words = (' ').join(words)
print(words)

但是,还有另一部分,它采用列表中每个字符串的第一个字母并将其以大写字母形式打印在一行中。 我无法弄清楚如何将其打印在一行上。 这是我的代码:

words_split = words.split() 
for word in words_split:
  i = word[0]
  print(i.upper())

例如,如果我输入ace, bravo, charlie :它将打印出来

一种

C

Ë

代替

高手

有人可以协助我谢谢您(:

很多可能性,但这就是我要做的:

words_split = words.split() 
print(''.join(word[0].upper() for word in words_split))

更新了我的答案,因为@Smarx提供了相同的答案。

考虑:

words = "ABC BCA CAB"

这是我的说法:

first_letter_upper = [word[0].upper() for word in words.split()]
joined_words = ''.join(first_letter_upper)
print(joined_words)

版画

ABC

我有另一个使用Python List Comprehension的解决方案,我建议在网络上阅读有关该方法的更多信息。

如果您有下一个示例:

words = 'Create a list of the first letters of every word in this string'

您可以创建一个新列表,每个首字母都写如下:

newlist = [x[0].upper() for x in words.split()]
print(newlist)

正确的输出是:

 ['C', 'A', 'L', 'O', 'T', 'F', 'L', 'O', 'E', 'W', 'I', 'T', 'S']

在for循环外创建一个空字符串,然后在循环内向其添加每个字母。 循环结束后,打印字符串。

words_split = words.split()

output = ""

for word in words_split:
    output += word[0].upper()

print(output)

另一种方法是将打印的终止字符更改为空:

words_split = words.split()

for word in words_split:
    i = word[0]
    print(i.upper(), end='')

您的问题是打印功能在每次打印后都向下一行,要解决该问题,您可以使用end参数:

print("a",end = '')
print("b",end = '')

将打印:

b

代替:

一种

b

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM