2014-10-04 66 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