字典唯一可以重复的是值。字典是密钥唯一的密钥存储区。在Python中,你可以创建一个字典,像这样:
d1 = {k1: v1, k2: v2, k3: v1}
d2 = [k1, v1, k2, v2, k3, v1]
d1
是使用通常的字典方式创建。d2
由具有偶数个元素的list
创建。请注意,两个版本都有重复的值。
如果你有一个返回字典中的唯一值的数量,那么你可以说类似的功能:
len(d1) != func(d1)
幸运的是,Python中可以很容易地使用sets
做到这一点。仅仅将d1
转换为set
是不够的。让我们的键和值真实,以便您可以运行一些代码。
v1 = 1; v2 = 2
k1 = "a"; k2 = "b"; k3 = "c"
d1 = {k1: v1, k2: v2, k3: v1}
print len(d1)
s = set(d1)
print s
你会发现,s
有三个成员太多,看起来像set(['c', 'b', 'a'])
。这是因为一个简单的转换只能使用字典中的键。你想使用像这样的值:
s = set(d1.values())
print s
正如你所看到的,只有两个元素,因为值1出现两次。查看一个集合的一种方式是它是一个没有重复元素的列表。这就是打印机在将一组打印出来作为括号内容时所看到的内容。另一种看待它的方式是没有价值的词典。与许多数据处理活动一样,您需要以selecting
开始您感兴趣的数据,然后对其进行处理。首先选择字典中的值,然后创建一个集合,然后进行计数和比较。
你在寻找独特的键或值,因为@Raymond已经提到过,字典有唯一的键。 –
此外,您的'd = {“a”,“b”,“c”}'是一个集合,而不是一个字典 –
制作一组唯一值并查看它是否具有相同的长度。如果你想要更多的细节,我建议使用集合计数器http://docs.python.org/library/collections.html#collections.Counter –