在Python2.7中从字典中获取列表长度作为值

2024-06-17 12:45:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两份清单和字典,如下所示:

>>> 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)

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


Tags: 方法函数元素列表len字典helpitems
3条回答

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

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

因此,如果您编写len(dict.items()[0]),那么您需要该项列表的第一个元组的长度。因为字典的元组总是2元组(对),所以可以得到长度2。如果需要给定键的值的长度,请写入:

len(dict[key])

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

>>>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}

答复:-

>>>[len(v) for k,v in dict.iteritems()]
[4, 3]

可以使用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

相关问题 更多 >