所以我在控制台中打印了这本词典
source-document01321.txt
1 {'startPos': '216', 'endPos': '225'}
2 {'startPos': '3678', 'endPos': '3687'}
this is the length 2
source-document01323.txt
1 {'startPos': '2880', 'endPos': '2889'}
2 {'startPos': '6042', 'endPos': '6351'}
3 {'startPos': '14232', 'endPos': '14241'}
4 {'startPos': '16956', 'endPos': '16965'}
5 {'startPos': '22626', 'endPos': '22635'}
6 {'startPos': '24708', 'endPos': '24717'}
7 {'startPos': '34824', 'endPos': '34833'}
8 {'startPos': '36444', 'endPos': '36453'}
9 {'startPos': '38064', 'endPos': '38073'}
this is the length 9
source-document01259.txt
1 {'startPos': '3528', 'endPos': '3537'}
2 {'startPos': '10428', 'endPos': '10437'}
3 {'startPos': '12426', 'endPos': '12435'}
4 {'startPos': '18450', 'endPos': '18459'}
5 {'startPos': '24864', 'endPos': '24873'}
6 {'startPos': '27036', 'endPos': '27213'}
7 {'startPos': '30588', 'endPos': '31167'}
8 {'startPos': '34824', 'endPos': '34833'}
9 {'startPos': '44466', 'endPos': '44475'}
10 {'startPos': '45492', 'endPos': '45501'}
11 {'startPos': '46644', 'endPos': '46653'}
12 {'startPos': '51732', 'endPos': '51741'}
使用此代码
for key, value in doc_dict.iteritems():
print key
for k, v in value.iteritems():
print k,v
print "this is the length ", len(value)
我想根据相反顺序中每个键的值的长度对其进行排序,并且只获得前5个 - 我使用下面的代码完成了
li = []
for k in sorted(doc_dict, key=lambda k: len(doc_dict[k]), reverse=True)[:5]:
li.append(k)
pprint(li)
但该列表仅包含密钥
输出:
['source-document01348.txt',
'source-document01389.txt',
'source-document01253.txt',
'source-document01306.txt',
'source-document01255.txt']
我还希望每个键旁边都有值的长度,所以我可以计算之后的百分比
即
[
['source-document01348.txt', '40'],
['source-document01389.txt', '35']
]
我需要做出哪些改变才能实现这一目标?
答案 0 :(得分:3)
for k in sorted(doc_dict, key=lambda k: len(doc_dict[k]), reverse=True)[:5]:
li.append((k,len(doc_dict[k])))
再次进行计算,附加一个元组(key, len(value))
答案 1 :(得分:1)
你几乎就在那里。将li.append(k)
更改为:
li.append([k,len(doc_dict[k])])
答案 2 :(得分:0)
使用sorted(doc_dict.items(), ...
,
for k, v in sorted(doc_dict.items(), key=lambda x: len(x[0]), reverse=True)[:5]:
li.append([k, len(v)])