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

如何在Python中对带序号的单词列表排序以组成指定句子?

嗨,这个需求其实挺常见的,我来给你拆解一下怎么用Python轻松实现~

实现思路与步骤

1. 先明确输入结构

首先咱们得统一输入的格式,通常带序号的单词列表会是两种常见形式:

  • 元组形式:每个元素是(序号, 单词),比如:
    word_list = [(3, "beautiful"), (1, "Hello"), (4, "world"), (2, "my")]
    
  • 字典形式:每个元素是包含索引键和单词键的字典,比如:
    word_list = [
        {"index": 3, "word": "beautiful"},
        {"index": 1, "word": "Hello"},
        {"index": 4, "word": "world"},
        {"index": 2, "word": "my"}
    ]
    

咱们的目标是把这些单词按序号从小到大排列,拼接成指定句子:"Hello my beautiful world"

2. 按序号排序

Python内置的sorted()函数就能搞定排序,核心是指定排序的依据为单词对应的序号:

  • 如果是元组形式:因为元组默认会按第一个元素(也就是序号)比较,直接调用sorted()即可:
    sorted_words = sorted(word_list)
    
  • 如果是字典形式:需要用key参数指定排序的键为字典里的index:
    sorted_words = sorted(word_list, key=lambda x: x["index"])
    

3. 提取单词并拼接成句子

排序完成后,咱们只需要把每个元素里的单词提取出来,再用空格连接成句子:

  • 元组形式的提取与拼接:
    target_sentence = " ".join(word for idx, word in sorted_words)
    
  • 字典形式的提取与拼接:
    target_sentence = " ".join(item["word"] for item in sorted_words)
    

4. 完整示例代码

把上面的步骤整合起来,这里给你一个元组形式的完整示例:

# 带序号的单词列表
word_list = [(3, "beautiful"), (1, "Hello"), (4, "world"), (2, "my")]

# 按序号排序
sorted_words = sorted(word_list)

# 拼接成目标句子
target_sentence = " ".join(word for idx, word in sorted_words)

print(target_sentence)  # 输出:Hello my beautiful world

额外情况处理

如果遇到序号不连续、甚至重复的情况:

  • 若重复序号需要保留所有单词,sorted()是稳定排序,会保留原列表中同序号单词的顺序;
  • 若需要去重,可以先对列表做去重处理(比如用字典先按序号存下最终要保留的单词,再转成列表排序)。

内容的提问来源于stack exchange,提问作者Erik Gebhard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:03:06