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

如何将Python列表中最长单词移至末尾并保持其余单词字母排序?

解决方法

核心思路

先把列表里的单词按长度分成两组:普通长度的单词、最长长度的单词。对普通单词做字母排序后,把最长单词追加到末尾,就能得到你要的结果。

完整代码示例

# 原始单词列表
list1 = ['beg', 'begs', 'big', 'bug', 'buggies', 'bugs', 'bus', 'egg', 'eggs', 'gig', 'sub', 'sue', 'use']

# 计算最长单词的长度
max_length = max(len(word) for word in list1)

# 分离普通单词和最长单词
normal_words = [word for word in list1 if len(word) < max_length]
longest_words = [word for word in list1 if len(word) == max_length]

# 对普通单词按字母顺序排序
sorted_normal = sorted(normal_words)

# 合并得到最终列表
result = sorted_normal + longest_words

# 按要求格式输出
print('list1:', result)

代码说明

  1. 计算最长长度:用生成器表达式遍历所有单词的长度,找出最大值max_length。
  2. 分组单词:通过列表推导式把单词分成两组,避免直接删除元素可能导致的遗漏(比如存在多个最长单词的情况)。
  3. 排序普通单词:sorted()默认按字母顺序排序,正好满足需求。
  4. 合并列表:把排序后的普通单词和最长单词拼接,最长单词自然移到末尾。

处理多个最长单词的情况

如果列表里有多个长度相同的最长单词,比如假设列表还有'guppies',上面的代码会把所有最长单词都移到末尾,保留它们在原列表中的顺序。如果想让最长单词也按字母排序,只需把longest_words改成sorted(longest_words)即可。

你原有代码的问题

  • 用list作为变量名会覆盖Python内置的list类型,这是不规范的写法;
  • 你把排序后的完整列表和最长单词分开打印了,没有合并成一个整体列表,所以输出不符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:12:10