所以我把这本词典印在控制台上
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']
]
我需要做什么改变,才能做到这一点
你就快到了。将
li.append(k)
更改为:li.append([k,len(doc_dict[k])])
再做一次计算,附加一个元组
(key, len(value))
使用
sorted(doc_dict.items(), ...
相关问题 更多 >
编程相关推荐