【问题标题】:How to count the keys in one of a large number of nested dictionaries如何计算大量嵌套字典之一中的键
【发布时间】:2018-09-03 11:32:27
【问题描述】:

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

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

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

当我这样做时,我只得到人数:

print(len(enron_data))

【问题讨论】:

  • 那么您需要单个字典值的键数吗?

标签: python dictionary


【解决方案1】:

如果您只需要外部字典的一个值的长度,只需按迭代顺序选择“第一个”值。对于字典,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 时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2023-04-10
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多