首页 > 解决方案 > 如何在不使用计数的情况下在列表列表中查找非重复列表的索引?

问题描述

假设我有一个这样的列表列表
[['a'], ['a'], ['a'], ['b'], ['a'], ['a'], ['a']]
现在我希望找到与其他列表元素不同的列表元素的索引,在这种情况下它[b]位于索引 3。我尝试使用

for i in list: 
    if list.count(i) == 1 :
        return list.index(i)

检索索引,但是当列表大小变大时,时间复杂度会呈指数级增长,因为 count 函数会在每次循环运行时找到每个元素的出现次数。我想知道是否有一种简单快捷的方法来获取非重复列表的索引。注意:我还尝试制作一个字典,其中键为列表,值为其出现次数,但在这种方法中,我无法保留我在代码中需要的列表索引。

标签: pythonlistcount

解决方案


也许试试这个:

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 语句感到抱歉。


推荐阅读