python - 如何在不使用计数的情况下在列表列表中查找非重复列表的索引?
问题描述
假设我有一个这样的列表列表
[['a'], ['a'], ['a'], ['b'], ['a'], ['a'], ['a']]
现在我希望找到与其他列表元素不同的列表元素的索引,在这种情况下它[b]
位于索引 3。我尝试使用
for i in list:
if list.count(i) == 1 :
return list.index(i)
检索索引,但是当列表大小变大时,时间复杂度会呈指数级增长,因为 count 函数会在每次循环运行时找到每个元素的出现次数。我想知道是否有一种简单快捷的方法来获取非重复列表的索引。注意:我还尝试制作一个字典,其中键为列表,值为其出现次数,但在这种方法中,我无法保留我在代码中需要的列表索引。
解决方案
也许试试这个:
for i in range(1,len(list)):
if (list[1] == list[2]) and (list[0] != list[1]):
return 0
if list[0] != list[i]:
return i
这仅适用于列表中只有一项是奇数项的情况。
对于丑陋的第一个 if 语句感到抱歉。
推荐阅读
- java - 如何获取玩家正在查看的块的坐标?
- javascript - 使用 AES/ECB/NoPadding 和 base 64 和 crypto-js 库实现的不正确的解密字符串
- android - MlKit vision 在不同的手机上返回不同的值
- python - 使用 SQLalchemy 连接多个表并使用 Flask 和 Jinja 对其进行评估
- spring - Spring Boot HazelcastHealthIndicator 是如何使用 http 配置和访问的?
- excel - 通过 VBA 64 位 FTP 下载
- python - Python:使用带有参数的方法作为属性
- node.js - 为什么在其余代码之后执行数据库查询?
- php - Foreach 函数显示刀片页面的值
- python - Python:通过数组切片进行矩阵乘法