因為在專案中用到了 所以看了一下
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必須是不可變型別,如 數字 字串 元...