簡體   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