每12个字末尾标“***”

mark "***" at the end of every 12 words

有文字。

text = """在家猫中,公猫比母猫更容易打架。在野猫中,猫打架最常见的原因是两只公猫为了与一只母猫交配而竞争。在这种情况下,大多数较重的公猫会赢得战斗。家猫打架的另一个常见原因是难以在狭小的家中建立领地。母猫也会争夺领地或保卫小猫。"""

如何实现这个功能(每12个字标“***”),请在python3中告诉我?

""" 在家猫中,公猫比母猫更容易打架。其中***

野猫,猫打架的最常见原因是***之间的竞争

下一个...*** """

首先我们使用 str.split() 将文本分成单个单词,然后我们可以通过将范围的步长设置为 12 来迭代每 12 个单词,在适当的地方添加“***”并重新加入单词space.

words = text.split()
for i in range(0, len(words), 12): # step by 12
    words[i] += "***"
new_text = " ".join(words)

注意:这会将第 0 个单词标记为“***”,使用 range(11, len(words), 12): 从第 12 个单词开始

使用列表理解:

text = "创建你自己的函数,接收一个句子并用 *** 标记每 12 个单词"

mark = " ".join(["{}***".format(word) 
        for idx, word in enumerate(text.split()) 
        if idx % 12 == 0])
print(mark)

这里的重点是使用enumerate()函数和取模运算符(%)。