ordereddict是dict的子類,它記住了內容新增的順序。
使用方法:
即輸出的順序為儲存的順序。import collections
d = collections.ordereddict()
d['a'] = 'a'
d['b'] = 'b'
d['c'] = 'c'
for k,v in d,items():
print k,v
配合使用sorted(),可以實現使字典按照value排序:
sorteddict = sorted(d.items(), key = lambda d:d[1], reverse = true)
其中reverse設定為true表示逆序排序,即由大到小排序;預設情況下是由小到大排序。
運用這個知識點,可以很容易解答以下的程式設計題:
程式如下:
import sys
import collections
lst =
dct = collections.ordereddict()
#迴圈讀取輸入,將輸入的出現次數計入有序字典裡面
for line in sys.stdin:
ele = line.split('\\')[-1].strip('\n')
if ele not in lst:
if ele in dct:
dct[ele] = dct[ele] + 1
else:
dct[ele] = 1
#對字典按照出現次數(value)排序
lsttuple = sorted(dct.items(), key = lambda d:d[1], reverse = true)
#輸出不超過8行的結果
count = 0
for key in lsttuple:
if count > 7:
break
count = count + 1
#檔名取後16位
if len(key[0].split(' ')[0]) > 16:
print key[0].split(' ')[0][-16:], key[0].split(' ')[1], key[1]
else:
print key[0].split(' ')[0], key[0].split(' ')[1], key[1]
Python有序字典
最近的django開發中用到了有序字典,所以研究了一下,以下。示例 有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。普通字典 1 d1 2 d1 a a 3 d1 b b 4 d1 c c 5 d1 d d 此時的d1 6 for k,v in d1.it...
python有序字典
最近的django開發中用到了有序字典,所以研究了一下,以下。示例 有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。普通字典 1 d1 2 d1 a a 3 d1 b b 4 d1 c c 5 d1 d d 此時的d1 6 for k,v in d1.it...
python有序字典
最近的django開發中用到了有序字典,所以研究了一下,以下。示例 有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。普通字典 由上面的結果可以看出對普通字典進行遍歷,輸出結果是無序的。下面是有序字典 需要匯入collections包 對比兩種輸出結果,不難...