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

时间:2017-08-19 06:07:36

标签: python

对于我的一个任务,用户输入多个字符串,直到它们输入一个空行,然后将它打印在一行中,这就是我这样做的方式。

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

e.g。如果我输入ace, bravo, charlie:它会打印出来

A

C

电子

而不是

ACE

有人可以帮助我,谢谢你(

5 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

更新了我的答案,因为@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

答案 2 :(得分:1)

我还有另一个使用Python List Comprehension的解决方案,我建议阅读更多有关Web方法的信息。

如果您有下一个示例:

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']

答案 3 :(得分:0)

在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='')

答案 4 :(得分:0)

你的问题是每次打印后打印功能都会向下排一行,要解决它你可以使用结束参数:

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

将打印:

  

AB

而不是:

  

     

B'/ P>