Python基本数据类型(有序字典)

1. 一般字典和有序字典的区别

区别:有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。
简单说,就是for循环下获取的kv是否按一定顺序获得

2. 一般字典

# 普通字典
dic01 = {'name':'Tom','age':12,'gender':'male'}
print('dic01:',dic01)
'''
由于字典无序,每次字典k:v的顺序也随机
第一次打印:{'name': 'Tom', 'gender': 'male', 'age': 12}
第二次打印:{'gender': 'male', 'name': 'Tom', 'age': 12}
第三次打印:{'name': 'Tom', 'gender': 'male', 'age': 12}
'''

for k,v in dic01.items():
    print(k,v)  # 迭代顺序随机
'''
gender male
name Tom
age 12
'''

如上,获取的kv,每次都是不同的排列顺序

3. 有序字典

3.1 有序插入

# 3.1 有序插入
dic03 = OrderedDict()
dic03['a'] = 'A'
dic03['b'] = 'B'
dic03['c'] = 'C'
print('dic03:',dic03)   # dic03: OrderedDict([('a', 'A'), ('b', 'B'), ('c', 'C')])

for k,v in dic03.items():
    print(k,v)
'''
a A
b B
c C
'''

如上,通过for循环迭代取出,是按照其插入顺序,顺序取出的

3.2 提前定义好

:之前看到一些博客说是有序字典不支持提前定义,但是实测,发现是可以提前定义的,效果如下

# 3.2 提前定义好字典
dic02 = OrderedDict(
    [
        ('name','Jack'),
        ('age',14),
        ('gender','male')
    ]
)

print('dic02:',dic02)    # OrderedDict([('name', 'Jack'), ('age', 14), ('gender', 'male')])
print(dic02['gender'])  # male

for k,v in dic02.items():
    print(k,v)
'''
name Jack
age 14
gender male
'''

如上,通过for循环取出来的kv也是按照其提前定义的顺序取出来的

你可能感兴趣的:(python)