在Python 2.7中获取列表的长度作为字典中的值

时间:2013-06-16 11:49:59

标签: python list python-2.7 dictionary

我有两个列表和字典如下:

>>> var1=[1,2,3,4]
>>> var2=[5,6,7]
>>> dict={1:var1,2:var2}

我想从我的字典中找到可变元素的大小,即键的值的长度。 查找help('dict')后,我只能找到返回键数的函数,即dict.__len__()。 我尝试了Java方法(希望它可以工作),即len(dict.items()[0]),但它评估为2

我打算找到这个:
第一个键的值长度:4
第二个键的值的长度:3

当列表是字典的一部分而不是单个列表时,如果它们的长度为len(list)

任何建议都会有很大的帮助。

3 个答案:

答案 0 :(得分:14)

dict.items()是一个包含字典的所有键/值元组的列表,例如:

[(1, [1,2,3,4]), (2, [5,6,7])]

因此,如果您编写len(dict.items()[0]),那么您要求该项目列表的第一个元组的长度。由于字典的元组总是2元组(对),因此长度为2。如果你想要给定键的值的长度,那么写:

len(dict[key])

Aso:尽量不要使用标准类型的名称(如strdictset等)作为变量名称。 Python没有抱怨,但它隐藏了类型名称,可能会导致意外行为。

答案 1 :(得分:2)

您可以使用dict comprehension执行此操作,例如:

>>> var1 = [1,2,3,4]
>>> var2 = [5,6,7]
>>> d = {1:var1, 2:var2}
>>> lengths = {key:len(value) for key,value in d.iteritems()}
>>> lengths
{1: 4, 2: 3}

你的" Java"顺便说一句,方法也几乎有用(但是相当不单声道)。您刚刚使用了错误的索引:

>>> d.items()
[(1, [1, 2, 3, 4]), (2, [5, 6, 7])]
>>> d.items()[0]
(1, [1, 2, 3, 4])
>>> len(d.items()[0][1])
4

答案 2 :(得分:2)

>>>for k,v in dict.iteritems():
   k,len(v)

和: -

(1, 4)
(2, 3)

或和: -

>>>var1=[1,2,3,4]
>>>var2=[5,6,7]
>>>dict={1:var1,2:var2}
相关问题