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

小写字母映射从1开始的连续整数:字典推导式问题排查

问题原因
  1. 双层循环覆盖值:你的字典推导式用了两层嵌套循环,外层遍历字母,内层遍历range(1, 20)。每遍历一个字母时,内层循环会把该字母的value从1到19逐个覆盖,最终所有字母的value都会被更新为内层循环的最后一个值19。
  2. 字母字符串拼写错误:你写的字母串'abcdefghijklmnopqrstunvwxyz'存在错误——多了一个n,同时缺少了x,导致最终字典里没有x,还重复处理了n。
实现目标字典的几种方法

方法1:使用enumerate(最直观)

enumerate会返回元素的索引和对应值,索引从0开始,加1即可得到从1起始的连续整数:

dict1 = {char: idx + 1 for idx, char in enumerate('abcdefghijklmnopqrstuvwxyz')}
print(dict1)

方法2:利用ord()函数

通过字符的ASCII码计算对应数值,'a'的ASCII码是97,用目标字符的ASCII码减去97再加1即可:

dict1 = {char: ord(char) - ord('a') + 1 for char in 'abcdefghijklmnopqrstuvwxyz'}
print(dict1)

方法3:用zip打包配对

将字母序列和range(1,27)(包含1到26的整数)打包成键值对,再转成字典:

dict1 = dict(zip('abcdefghijklmnopqrstuvwxyz', range(1, 27)))
print(dict1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:05:32