如何使用Python打乱字符串中的句子顺序?
句子随机重排的实现方案(Python)
针对你的需求,用Python可以轻松实现几百词文本的句子随机重排,步骤和代码如下:
核心思路
- 拆分句子:将原始字符串按句子边界拆分,处理末尾无标点的情况
- 随机打乱:利用随机模块打乱句子列表顺序
- 拼接输出:将打乱后的句子重新组合成规范的字符串
基础版代码(仅处理句号结尾的句子)
import random # 替换成你的目标文本 original_text = "Tekken 3 is best game. I had played many games. But tekken 5 is love" # 拆分句子:按". "分割 sentences = original_text.split(". ") # 给最后一句补全句号(如果原文本末尾没加的话) if not sentences[-1].endswith("."): sentences[-1] += "." # 随机打乱句子顺序 random.shuffle(sentences) # 重新拼接成最终字符串 shuffled_result = " ".join(sentences) print(shuffled_result)
通用版代码(支持感叹号、问号结尾的句子)
如果你的文本包含多种结尾标点(如!、?),可以用正则表达式更精准地拆分:
import re import random original_text = "Tekken 3 is best game. I had played many games! But tekken 5 is love?" # 正则分割:匹配句号/感叹号/问号后的空格,保留句子结尾标点 sentences = re.split(r'(?<=[.!?])\s+', original_text) # 处理末尾无标点的异常情况 if not re.search(r'[.!?]$', sentences[-1]): sentences[-1] += "." # 打乱顺序 random.shuffle(sentences) # 拼接输出 shuffled_result = " ".join(sentences) print(shuffled_result)
说明
random.shuffle()会直接修改原列表,效率很高,完全适配500-600词的文本规模- 两种方案都处理了原文本末尾无标点的边界情况,保证输出格式统一
内容的提问来源于stack exchange,提问作者Mr Paul Reviews
相关产品推荐
相关产品推荐

