python3字典有序還是無序 無序字典和有序字典

2021-10-11 00:12:08 字數 1181 閱讀 1542

因為在專案中用到了 所以看了一下

python3.5 字典是無序的

python3.6 只有顯示出來的是有序的 但實際上 也是無序的

python3.7之後 字典就是有序的

有序字典應該先 匯入

from collections import ordereddict

ordereddict就是乙個類 需要需用 先進行 例項化

od = ordereddict()

然後和字典的用法是一樣的

from collections import ordereddict

od = ordereddict()

od['k1'] = 'v1'

od['k2'] = 'v2'

od['k3'] = 'v3'

for k, v in od.items():

print('k={},v={}'.format(k, v))

顯示的結果就是

k=k1,v=v1

k=k2,v=v2

k=k3,v=v3

這就是有序字典了 有序字典就是按照插入資料的順序輸出的

我的應用場景 是對一級選單排序

from collections import ordereddict

@register.inclusion_tag('menu.html')

def menu(request):

od = ordereddict()

menu_dict = request.session.get(settings.menu_session_key)

# url = request.path_info

# for i in menu_list:

# if re.match(r'{}$'.format(i['url']), url):

# i['class'] = 'active'

# break

# print(menu_dict.values())

menu_list = sorted(menu_dict, key=lambda x: menu_dict[x]['weight'], reverse=true)

# print(menu_list)

for key in menu_list:

od[key] = menu_dict[key]

return

python3字典遍歷 python3字典遍歷

python版本 python3.7 info infog.get name 得到字典info中name的值 info.keys 得到字典info中所有的鍵,結果是乙個物件 dict keys name age 需要注意在python2中該操作得到的是乙個列表 遍歷key for temp in i...

python3字典排序

說實話,對字典進行排序,這個說法本身就有問題,實際上,你無法對操縱字典說,字典,在你的底層實現裡,你就得按照我指定的順序來排列,如果這樣的話,字典就喪失了它的速度優勢,它也不是乙個字典了.好了,廢話不多說,我這裡稍微記錄一下我的做法吧.python2裡面原來是有dict.iteritems這樣乙個函...

python3 字典操作

dictionary 字典 裝下整個世界 字典是python中的唯一的對映型別,採用鍵值對的形式儲存資料 key value python對key進行雜湊函式運算,根據計算結果決定value儲存的位址,所以字典是無序儲存的,且key必須是可雜湊的。可雜湊表示key必須是不可變型別,如 數字 字串 元...