Py学习  »  Python

是否有一个python函数从唯一值获取所有索引?

till Kadabra • 4 年前 • 617 次点击  

我知道有些方法像set()或np.unqiue()可以从列表中获取唯一值。但是我寻找一种方法来获取不超过一次出现的值的索引。

我要的是
所需索引列表=[0,3,6]

有什么建议吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54321
 
617 次点击  
文章 [ 2 ]  |  最新文章 4 年前
match
Reply   •   1 楼
match    4 年前

你可以一行一行地理解列表:

from collections import Counter
[example.index(x) for x, y in Counter(example).items() if y == 1]

(使用Counter,返回每个项(x)的元组及其出现次数(y),如果计数为1,则返回项的索引)。

erhesto
Reply   •   2 楼
erhesto    4 年前

不知道任何预先构建的解决方案,可能需要创建自己的解决方案。这有不同的方法,但是使用经典的Python实现,您可以轻松地创建count_dict并从原始列表中筛选count为1的值。

>>> from collections import Counter
>>> example = [0,1,1,2,3,3,4]
>>> counted = Counter(example)
>>> desired_index_list = [index for index, elem in enumerate(example) if counted[elem] == 1]
>>> desired_index_list
[0, 3, 6]