1

我有一本字典,其中包含如下所示的列表:

['33', '34', '34', '34', '35', '35', '36', '36', '38']
['34', '37', '38']
['33', '33', '35', '35', '38', '38']

我正在尝试自动获取每个列表的唯一值的数量(即第三个列表的值为 3)。

我该怎么做?

4

3 回答 3

5
print len(set([1,1,2,2,3,3]))

那是你要找的吗?

sets 就像列表...除了它们只包含唯一的元素,并且它们没有顺序

于 2013-10-16T23:04:31.683 回答
0

len(set(x))是集合中唯一元素的数量x

所以对于那本字典:

d
Out[16]: 
{'a': ['33', '34', '34', '34', '35', '35', '36', '36', '38'],
 'b': ['34', '37', '38'],
 'c': ['33', '33', '35', '35', '38', '38']}

你会有

for k,v in d.items():
    print('{}: {}'.format(k,len(set(v))))

a: 5
c: 3
b: 3

python 3 语法。

于 2013-10-16T23:07:12.707 回答
0

建立一个集合,然后得到它的长度:

print len(set(yourlist))
于 2013-10-16T23:05:01.590 回答