我有一个浮动列表:
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]
答案 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]