我在嵌套字典中存储了大量有关人员的数据。
外部词典的键是一个人的名字,而值是另一个词典,其中包含有关该人的所有信息(功能,例如电子邮件,电话,电话号码,薪水等)。内部dict键是功能名称(例如'email'等),值是功能的值(例如'abcde@gmail.com'
)。
我知道所有人都有相同数量的功能。我如何计算有多少功能?
执行此操作时,我只会得到人数:
print(len(enron_data))
答案 0 :(得分:3)
如果您只需要外部字典中一个值的长度,则只需按迭代顺序选择“第一个”值即可。对于order is either 'arbitrary' or insertion order词典,但是如果所有词典都具有相同数量的键,那么选择哪一个键都没关系。
要获得“第一个”,请将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时间。