Skip to main content
 首页 » 编程设计

python之仅拆分字符串中的长单词

2025年05月04日16yyy_WW

我有一些随机字符串,比方说:

s = "This string has some verylongwordsneededtosplit" 

我正在尝试编写一个函数 trunc_string(string, len),它将字符串作为要操作的参数,并将“len”作为长单词拆分后的字符数。

结果应该是这样的

str = trunc_string(s, 10) 
str = "This string has some verylongwo rdsneededt osplit" 

现在我有这样的东西:

def truncate_long_words(s, num): 
"""Splits long words in string""" 
words = s.split() 
for word in words: 
    if len(word) > num: 
        split_words = list(words) 

在这部分之后,我将这个长单词作为字符列表。现在我需要:

  • 在一些 word_part 临时列表中加入 'num' 个字符
  • 将所有word_parts合并为一个词
  • 将这个单词与其他单词连接起来,这些单词不够长,无法拆分。

我应该以某种类似的方式制作它吗? :

counter = 0 
for char in split_words: 
    word_part.append(char) 
    counter = counter+1 
    if counter == num 

在这里我应该以某种方式将所有 word_part 连接在一起创建 word 并进一步

请您参考如下方法:

def split_word(word, length=10): 
    return (word[n:n+length] for n in range(0, len(word), length)) 
 
string = "This string has some verylongwordsneededtosplit" 
 
print [item for word in string.split() for item in split_word(word)] 
# ['This', 'string', 'has', 'some', 'verylongwo', 'rdsneededt', 'osplit'] 

注意:将字符串命名为 str 是个坏主意。它隐藏了内置类型。