嵌套字典中的条目

时间:2014-11-11 17:43:24

标签: python dictionary

给定嵌套词典:

myDict = { 'through': { 1: 18,
                        2: 27,
                        3:  2,
                        4: 15,
                        5: 63
                        },
           'one':     { 1: 27,
                        2: 15,
                        3: 24,
                        4:  9,
                        5: 32
                        },
           'clock':   { 1:  2,
                        2:  5,
                        3:  9,
                        4:  6,
                        5: 15
                        }
           }

外键是一个单词,内键是该单词包含的文件,值是该单词在该文件中出现的次数。

如何使用文件编号计算出现的文本文件总数?

即。 有没有办法提取内部字典中的键/值对数量?

即。 numOfFiles = 5

因为这里有5个文件,但是说我有数百个并且它们被自动读入这个字典,所以我不得不解决它?

2 个答案:

答案 0 :(得分:0)

如果您想知道包含该字词的文件总数,请使用len

len(myDict['through'])

如果您需要总存在文件的数量:

max([len(x) for x in myDict.values()])

答案 1 :(得分:0)

len函数计算长度:

>>>len(myDict['through'])
5

如果你想要单词以及包含它的文件数量:你可以使用字典理解

>>>{ x:len(y) for x,y in myDict.items() }
{'one': 5, 'through': 5, 'clock': 5}

您要求输入键/值对:

 >>> [ y.items() for x,y in myDict.items() ]
[[(1, 2), (2, 5), (3, 9), (4, 6), (5, 15)], [(1, 18), (2, 27), (3, 2), (4, 15), (5, 63)], [(1, 27), (2, 15), (3, 24), (4, 9), (5, 32)]]

items为内部字典

提供键/值对的元组

如果单词不存在infile,那么它将检查大于0:

>>> myDict
{'clock': {1: 2, 2: 5, 3: 9, 4: 6, 5: 15}, 'through': {1: 18, 2: 27, 3: 2, 4: 15, 5: 63}, 'one': {1: 27, 2: 15, 3: 0, 4: 9, 5: 32}}
>>>{ x:len(filter(lambda x:x if x > 0 else False,y.values())) for x,y in myDict.items() }
{'one': 4, 'through': 5, 'clock': 5}

此处文件3中没有一个