2014-10-04 102 views
10

我對這一切都很新,所以這可能是一個noobie問題..但我期待找到字典值的長度......但我不知道如何做到這一點。如何找到字典值的長度

因此,例如,

d = {'key':['hello', 'brave', 'morning', 'sunset', 'metaphysics']} 

我想知道是否有一種方法,我可以找到len個號碼字典值的項目。

感謝

+0

如下文所述,它不管你將與你的長度做...長度爲每個鍵或只是一個長度的名單是什麼? – user1269942 2014-10-04 06:42:52

回答

17

肯定。在這種情況下,你只是做:

length_key = len(d['key']) # length of the list stored at `'key'` ... 

這很難說,爲什麼你真的想這樣,但也許這將是有益創建另一個字典的鍵映射到值的長度:

length_dict = {key: len(value) for key, value in d.items()} 
length_key = length_dict['key'] # length of the list stored at `'key'` ... 
+0

+1,但「length_key」作爲變量名有點誤導,因爲它是給定值的長度。 – user1269942 2014-10-04 06:40:14

+0

@ user1269942 - 是的,我很難爲這個名字命名。 。 。 – mgilson 2014-10-04 07:06:18

3

要找到所有值的長度在字典中,你可以這樣做:

lengths = [len(v) for v in d.values()] 
+0

@squinguy我認爲,因爲字典不保留秩序這樣做將不明確哪些列表項對應哪個字典條目。 – user1269942 2014-10-04 06:38:04

+0

@ user1269942這很公平,但沒有提到將值與它們的鍵相關聯。我只是看到了所有值的長度。 – squiguy 2014-10-04 06:39:30

+0

雅,一個公平的解釋!我沒有想到這一點......我只是添加了一條評論,讓他們知道有含糊之處。 – user1269942 2014-10-04 06:41:06

2

讓我們做一些實驗,看看我們如何獲得/解釋字典中不同的字典/數組值的長度。

創建我們的測試字典,看到list and dict comprehensions

>>> my_dict = {x:[i for i in range(x)] for x in range(4)} 
>>> my_dict 
{0: [], 1: [0], 2: [0, 1], 3: [0, 1, 2]} 

獲取特定鍵值長度:

>>> my_dict[3] 
[0, 1, 2] 
>>> len(my_dict[3]) 
3 

獲取每個鍵的值的長度的字典:

>>> key_to_value_lengths = {k:len(v) for k, v in my_dict.items()} 
{0: 0, 1: 1, 2: 2, 3: 3} 
>>> key_to_value_lengths[2] 
2 

獲取字典中所有值長度的總和:

>>> [len(x) for x in my_dict.values()] 
[0, 1, 2, 3] 
>>> sum([len(x) for x in my_dict.values()]) 
6 
-1
d={1:'a',2:'b'} 
sum=0 
for i in range(0,len(d),1): 
    sum=sum+1 
i=i+1 
print i 

OUTPUT = 2

+0

你可以給這個代碼更多的上下文嗎? – 2018-02-07 10:15:55

+1

感謝您使用此代碼段,這可能會提供一些有限的短期幫助。通過展示*爲什麼*這是一個很好的解決方案,並且使它對未來的讀者更有用,一個正確的解釋[將大大提高](// meta.stackexchange.com/q/114762)其長期價值其他類似的問題。請[編輯]你的答案以添加一些解釋,包括你所做的假設。 – 2018-02-07 12:07:56