字典唯一可以重複的是值。字典是密鑰唯一的密鑰存儲區。在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 –