程式設計學習之python 有序字典的學習

2021-07-29 11:52:23 字數 1351 閱讀 3060

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包 對比兩種輸出結果,不難...