You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python打乱字符串中的句子顺序?

句子随机重排的实现方案(Python)

针对你的需求,用Python可以轻松实现几百词文本的句子随机重排,步骤和代码如下:

核心思路

  1. 拆分句子:将原始字符串按句子边界拆分,处理末尾无标点的情况
  2. 随机打乱:利用随机模块打乱句子列表顺序
  3. 拼接输出:将打乱后的句子重新组合成规范的字符串

基础版代码(仅处理句号结尾的句子)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 01:09:55