给定嵌套词典:
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个文件,但是说我有数百个并且它们被自动读入这个字典,所以我不得不解决它?
答案 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中没有一个