【发布时间】:2011-12-11 04:53:11
【问题描述】:
我有一个 dict 在其键下包含列表:
dct = {'a': [1, 2, 3],
'b': [1, 2, 3, 4],
'c': [1, 2]}
识别列表长度是否相同的最佳方法是什么?
这是我的解决方案:
import itertools
len(set(itertools.imap(len, dct.viewvalues()))) == 1
True 如果相似,False 如果不是
UPD:参考@RaymondHettinger 的建议,将map 替换为itertools.imap
【问题讨论】:
-
澄清一下:你的意思是相似还是相同?
-
我认为您的意思是
values而不是viewvalues。 -
@StevenRumbalski 就我而言,根据python docs,使用
viewvalues比values更pythonic -
@klesh 没有意识到
values在 2.7 中的名称为viewvalues。在 Python 3 中values返回一个视图对象并且没有viewvalues方法。在 2.7 之前,如果您想避免创建中间列表,您可以使用itervalues。