我有一组关于人员存储在嵌套字典中的大量数据。
外部字典的键是一个人的名字,值是另一个字典,包含有关该人的所有信息(功能,如电子邮件,电话,号码,工资......)。内部字典键是功能名称(所以'电子邮件'等等),值是功能的值(所以'[email protected]'
)。
我知道所有人都有相同数量的功能。我如何计算有多少功能?
当我这样做时,我只得到了人数:
print(len(enron_data))
如果只需要外部字典的一个值的长度,只需按迭代顺序选择“第一个”值。对于词典order is either 'arbitrary' or insertion order,但如果你的所有词典都有相同数量的键,那么你选择哪一个并不重要。
要获得'first',请将dict.values()
转换为带有iter()
的迭代器,并在结果上调用next()
:
one_value = next(iter(enron_data.values())) # *one* of the values
number_of_features = len(one_value)
如果next()
和iter()
看起来很可怕,你也可以使用for
循环和break
在第一次迭代后结束循环:
for value in enron_data.values():
number_of_features = len(one_value)
break
我假设你在这里使用Python 3。如果您使用的是Python 2,请使用enron_data.itervalues()
而不是enron_data.values()
,否则首先为所有值创建一个大的新列表对象。这真的是浪费内存和CPU时间。