当前位置:   article > 正文

Python之哈希表-遍历和有序性_python有序哈希

python有序哈希

Python之哈希表-遍历和有序性

有序性

  • 字典元素是按照key的hash值无序存储的。

但是,有时候我们却需要一个有序的元素顺序,Python 3.6之前,使用OrderedDict类可以做到,3.6开
始dict自身支持。

d1 = {'b':33, 'c':True, 'd':[1], 'f':234}
d1
# 返回结果:{'b': 33, 'c': True, 'd': [1], 'f': 234}
  • 1
  • 2
  • 3
'
运行
for key in d1:
    print(type(key), key)
# 字典最重要的就是key
# 查看类型
# 返回结果:<class 'str'> b
# 返回结果:<class 'str'> c
# 返回结果:<class 'str'> d
# 返回结果:<class 'str'> f
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
d2 = {'a':1, 1:'abc', None:'1', 5:[]}
d2
# key要可hash
# 返回结果:{'a': 1, 1: 'abc', None: '1', 5: []}
  • 1
  • 2
  • 3
  • 4
'
运行
for k in d1: 
    print(k)
# 获取key 简写
# 返回结果:b
# 返回结果:c
# 返回结果:d
# 返回结果:f
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
for k in d1.keys():
    print(k)
# 获取key 全写
# 返回结果:b
# 返回结果:c
# 返回结果:d
# 返回结果:f
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
for v in d1.values():
    print(v)
# 获取values
# 返回结果:33
# 返回结果:True
# 返回结果:[1]
# 返回结果:234
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
for k in d1.keys():
    print(k, d1.get(k), d1[k], d1.setdefault(k))
# 获取key/value
# 返回结果:b 33 33 33
# 返回结果:c True True True
# 返回结果:d [1] [1] [1]
# 返回结果:f 234 234 234
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
d2 = dict(a=100, b=200, c=300, d=404)
# 定义一个字典
  • 1
  • 2
'
运行
d2
# 返回结果:{'a': 100, 'b': 200, 'c': 300, 'd': 404}
  • 1
  • 2
while len(d2): 
    d2.popitem()
# while循环 d2
  • 1
  • 2
  • 3
d2
# 返回结果:{}
  • 1
  • 2
from collections import OrderedDict 
# 有序字典 sorted , 导入collections库的OrderedDict
  • 1
  • 2
'
运行
d3 = OrderedDict()
  • 1
d3.update(a=1, b='abc')
  • 1
d3
# OrderedDict 记录录入序的字典,也就是有序字典
# 返回结果:OrderedDict([('a', 1), ('b', 'abc')])
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号