检查唯一编号并提取索引

时间:2017-06-15 14:56:13

标签: python

我有一个浮动列表:

x = [1.69,1.69,2.36,2.63,2.63,3.00,3.00]

最后,我尝试获得一个包含所有相同数字的列表:

y = [1.69,1.69,2.63,2.63,3.00,3.00]

和唯一数字的索引:

 z = [2]

1 个答案:

答案 0 :(得分:1)

使用collections.Counter创建一个dict,其中包含列表中每个唯一值的计数:

>>> import collections
>>> x = [1.69,1.69,2.36,2.63,2.63,3.00,3.00]
>>> c = collections.Counter(x)
>>> c
Counter({1.69: 2, 3.0: 2, 2.63: 2, 2.36: 1})

然后你可以使用一些简单的列表推导来获得唯一的和非唯一的元素和/或它们的索引:

>>> [e for e in x if c[e] > 1]
[1.69, 1.69, 2.63, 2.63, 3.0, 3.0]
>>> [i for i, e in enumerate(x) if c[e] == 1]
[2]