如何计算大量嵌套词典之一中的键

时间:2018-09-03 11:32:27

标签: python dictionary

我在嵌套字典中存储了大量有关人员的数据。

外部词典的键是一个人的名字,而值是另一个词典,其中包含有关该人的所有信息(功能,例如电子邮件,电话,电话号码,薪水等)。内部dict键是功能名称(例如'email'等),值是功能的值(例如'abcde@gmail.com')。

我知道所有人都有相同数量的功能。我如何计算有多少功能?

执行此操作时,我只会得到人数:

print(len(enron_data))

1 个答案:

答案 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时间。