如果列表包含浮点数,如何在列表中选择相同的值

时间:2018-09-07 14:13:33

标签: python list numpy dictionary

在下面的代码中,我想检查列表中有多少个唯一值,可以在for循环中完成。知道唯一值的数量后,我想查看单个唯一值在中出现多少次,然后我要计算它们的数量。有人可以指导我如何做到这一点。列表包含浮点。如果将其转换为numpy数组然后找到相同的值,该怎么办。

`a= [1.0, 1.0, 1.0, 1.0, 1.5, 1.5, 1.5, 3.0, 3.0]
list = []
for i in a:
    if i not in list:
        list.append(i)

print(list)
for j in range(len(list))
    g= np.argwhere(a==list[j])
    print(g)`

1 个答案:

答案 0 :(得分:1)

您可以使用np.unique完成它

np.unique(np.array(a),return_counts=True)

您也可以使用集合中的计数器

from collections import Counter
Var=dict(Counter(a))
print(Var)

原始方法是使用循环

[[x,a.count(x)] for x in set(a)]

如果您不熟悉列表理解,这是它的解释

ls=[]
for x in set(a):
    ls.append([x,a.count(x)])
print(ls)

如果要使用if else,

counter = dict()
for k in a:
    if not k in counter:
        counter[k] = 1
    else:
        counter[k] += 1
print(counter)