如何提取句子中每第n个单词的第一个字母?

How to extract first letter of every nth word in a sentence?

我试图提取每 5 个单词的第一个字母,经过一些研究后,我能够弄清楚如何获取每 5 个单词。但是,我怎么知道提取每 5 个单词的第一个字母并将它们放在一起组成一个单词。这是我目前的进度:

def extract(text):
    for word in text.split()[::5]:
        print(word)

extract("I like to jump on trees when I am bored")

正如评论所指出的那样,拆分它然后只访问第一个字符:

def extract(text):
    for word in text.split(" "):
        print(word[0])

text.split(" ") return 是一个数组,我们正在遍历该数组。 word 是该数组中的当前条目 (string)。现在,在 python 中,您可以使用典型的数组表示法访问字符串的第一个字符。因此,word[0] return 是该词的第一个字符,word[-1] 将 return 是该词的最后一个字符。

不知道你是怎么解决第一部分的,第二部分解决不了,
但无论如何,python 中的字符串只是一个字符列表,所以如果你想访问第一个字符,你会得到第 0 个索引。因此将其应用于您的示例,正​​如评论中提到的那样,您键入 (word[0]),

所以你可以打印单词[0]或者收集列表中的第一个字符来做任何进一步的操作(我相信你想要做的,而不仅仅是打印它们!)

def extract(text):
    mychars=[]
    for word in text.split()[::5]:
        mychars.append(word[0])
    print(mychars)

extract("I like to jump on trees when I am bored")

以下代码可能会对您有所帮助。只是根据您所说的示例想法。

 #
 # str Text   : A string of words, such as a sentence.
 # int split  : Split the string every nth word 
 # int maxLen : Max number of chars extracted from beginning of each word
 #

 def extract(text,split,maxLen):
     newWord = ""
     # Every nth word
     for word in text.split()[::split]:
         if len(word) < maxLen:
              newWord += word[0:] #Entire word (if maxLength is small)
         else:
              newWord += word[:maxLen] #Beginning of word until nth letter
     return (None if newWord=="" else newWord) 

 text = "The quick brown fox jumps over the lazy dog."

 result = extract(text, split=5, maxLen=2) #Use split=5, maxLen=1 to do what you said specifically

 if (result):
      print (result) #Expected output: "Thov"