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

如何将列表元素映射为字典键 实现字符串字符按Unicode值排序

代码问题修正

你现有代码的核心错误有三处:

  • ord(i)写法错误:ord()接收的参数是字符本身,你传入的i是循环的索引整数,无法得到字符对应的Unicode值
  • 多余的for k,v in word_dic.items()循环:初始化阶段word_dic为空,这层循环永远不会执行,字典不会被赋值
  • 全局变量风险:word_dic和My_List定义在函数外部,多次调用函数会累计历史数据,建议移到函数内部

适配你需求的实现代码

如果你要保留先存列表再生成字典的逻辑,修改后代码如下:

def strsort(word):
    word_dic = {}
    My_List = []
    # 拆分字符串存入列表
    for i in range(len(word)):
        My_List.append(word[i])
    # 遍历列表生成字符:Unicode值字典
    for char in My_List:
        word_dic[char] = ord(char)
    return word_dic

测试调用strsort("ja")会返回{'j': 106, 'a': 97},符合你要求的字典格式。

简化写法&排序实现

如果不需要保留额外的列表存储步骤,可以用字典推导式直接生成映射,再完成排序:

def strsort(word):
    # 生成字符与Unicode值的映射字典
    char_map = {char: ord(char) for char in word}
    # 按Unicode值升序排序,返回排序后的字符列表
    sorted_result = sorted(char_map.items(), key=lambda item: item[1])
    return [item[0] for item in sorted_result]

测试调用strsort("ja")会返回['a', 'j'],即按Unicode值排序后的字符序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:57:03