使用 `dict(enumerate(x))` 默认生成索引→值映射,而 `{v: i for i, v in enumerate(x)}` 试图构建值→索引映射,但在列表含重复值(如 `[73,74,75,71,69,72,76,73]`)时会因键冲突导致后出现的索引覆盖前一个,丢失原始位置信息。
在 Python 中,字典的键必须唯一。当你用推导式 {n: i for i, n in enumerate(x)} 构建「值 → 首次/末次索引」映射时,若输入列表 x 存在重复元素(例如 73 出现在索引 0 和 7),后者会无条件覆盖前者,最终 73: 7 成为唯一键值对——这往往违背业务意图(如查找第一个出现位置、统计所有位置等)。
下面介绍三种典型场景及对应解决方案,均以 x = [73, 74, 75, 71, 69, 72, 76, 73, 99] 为例:
(推荐用于去重定位)x = [73, 74, 75, 71, 69, 72, 76, 73, 99]
idx_first = {}
for i, v in enumerate(x):
if v not in idx_first: # 仅首次赋值
idx_first[v] = i
print(idx_first)
# {73: 0, 74: 1, 75: 2, 71: 3, 69: 4, 72: 5, 76: 6, 99: 8}适用于需严格保持“唯一值序列”顺序的场景(如构造紧凑 ID 映射):
x = [73, 74, 75, 71, 69, 72, 76, 73, 99]
unique_x = list(dict.fromkeys(x)) # 保持插入顺序去重(Python 3.7+)
idx_ordered = {v: i for i, v in enumerate(unique_x)}
print(idx_ordered)
# {73: 0, 74: 1, 75: 2, 71: 3, 69: 4, 72: 5, 76: 6, 99: 7}from collections import defaultdict
x = [73, 74, 75, 71, 69, 72, 76, 73, 99]
idx_all = defaultdict(list)
for i, v in enumerate(x):
idx_all[v].append(i)
# 转为普通 dict(可选)
idx_all = dict(idx_all)
print(idx_all)
# {73: [0, 7], 74: [1], 75: [2], 71: [3], 69: [4], 72: [5], 76: [6], 99: [8]}选择哪种方案取决于你的实际需求:是定位首个匹配项、构建紧凑编码表,还是完整追踪数据分布。明确语义,才能写出健壮、可维护的映射逻辑。
# python
# 编码
# app
# 键值对
# red
相关文章:
如何配置WinSCP新建站点的密钥验证步骤?
如何在万网自助建站平台快速创建网站?
如何在新浪SAE免费搭建个人博客?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何用已有域名快速搭建网站?
如何通过商城自助建站源码实现零基础高效建站?
网站代码制作软件有哪些,如何生成自己网站的代码?
建站主机类型有哪些?如何正确选型
如何快速生成专业多端适配建站电话?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
宝塔Windows建站如何避免显示默认IIS页面?
如何用景安虚拟主机手机版绑定域名建站?
网站微信制作软件,如何制作微信链接?
电商网站制作价格怎么算,网上拍卖流程以及规则?
建站主机SSH密钥生成步骤及常见问题解答?
如何在阿里云购买域名并搭建网站?
山东云建站价格为何差异显著?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何高效配置IIS服务器搭建网站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
建站中国官网:模板定制+SEO优化+建站流程一站式指南
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
建站之星3.0如何解决常见操作问题?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
建站之星北京办公室:智能建站系统与小程序生成方案解析
微信h5制作网站有哪些,免费微信H5页面制作工具?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
为什么Go需要go mod文件_Go go mod文件作用说明
如何续费美橙建站之星域名及服务?
建站168自助建站系统:快速模板定制与SEO优化指南
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
小型网站制作HTML,*游戏网站怎么搭建?
网站制作难吗安全吗,做一个网站需要多久时间?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
香港服务器选型指南:免备案配置与高效建站方案解析
建站之星24小时客服电话如何获取?
如何快速查询网址的建站时间与历史轨迹?
简历在线制作网站免费版,如何创建个人简历?
再谈Python中的字符串与字符编码(推荐)
制作网站的公司有哪些,做一个公司网站要多少钱?
宝塔建站助手安装配置与建站模板使用全流程解析
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
Python lxml的etree和ElementTree有什么区别
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
宝塔建站无法访问?如何排查配置与端口问题?
*请认真填写需求信息,我们会在24小时内与您取得联系。