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

求助:使用Python collections库实现字符异位词分组的代码

用collections库分组异位词的实现方案

核心思路:异位词的字符组成完全相同,只是顺序不同,将每个字符串排序后得到的结果可以作为分组的唯一标识。借助collections.defaultdict可以轻松实现分组逻辑,无需手动处理键不存在的情况。

完整代码实现

from collections import defaultdict

# 输入示例列表
input_list = ['abc','acb','hds','sdh','nm','mn']

# 初始化一个默认值为列表的字典
group_dict = defaultdict(list)

for word in input_list:
    # 将字符串排序后转为字符串,作为分组的键
    key = ''.join(sorted(word))
    # 将原字符串加入对应键的列表中
    group_dict[key].append(word)

# 将字典的值转为列表,得到最终结果
result = list(group_dict.values())
print(result)

代码说明

  • sorted(word):对字符串的字符进行排序,返回字符列表,比如'acb'排序后得到['a','b','c']
  • ''.join(...):把排序后的字符列表转回字符串,作为分组的唯一键
  • defaultdict(list):当访问不存在的键时,会自动创建一个空列表作为默认值,省去了判断键是否存在的步骤
  • list(group_dict.values()):把字典中所有的分组列表提取出来,组成最终的结果列表

运行结果

执行代码后,输出与示例一致:

[['abc','acb'],['hds','sdh'],['nm','mn']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:05:22