OrderedDict:有序字典
from collections import OrderedDict
它是dict的子类,它是有序的,其顺序是:先添加的在前边,后添加的在后
user_dict = OrderedDict()
user_dict['a'] = "rio1"
user_dict['c"] = "rio2"
user_dict["b"] = "rio3"
python3下dict和OrderedDict都是有序的,OrderedDict提供了额外的函数
pop_item可以不需要传递key并删除最后一个item,pop需要传递key
user_dict.popitem()
user_dict.pop(key)
move_to_end("key"),把指定元素移到最后
拓展:
前面小结namedtuple的_asdict()返回的就是orderedDict
python3默认dict有序
popitem
move_to_end
"""
OrderedDict是dict的子类
OrderedDict 保证添加的顺序一致,先添加的在前面,后添加的在后面
python2与python3结果不一致,注意版本问题
在python3中,OrderedDict和dict是一样的
在python2和python3中,OrderedDict都是一样的,建议使用OrderedDict
OrderedDict的子方法:
clear(): 清除
pop(key): 移除指定key对应的元素
popitem(): 移除最后一个元素
move_to_end(key, last): 将key对应的元素移动到last指定的位置
"""
from collections import OrderedDict
if __name__ == "__main__":
user_dict = dict()
user_dict["b"] = "小二"
user_dict["g"] = "田七"
user_dict["c"] = "张三"
user_dict["d"] = "李四"
user_dict["a"] = "刘一"
user_dict["f"] = "赵六"
user_dict["e"] = "王五"
print(user_dict)
user_dict = OrderedDict()
user_dict["b"] = "小二"
user_dict["g"] = "田七"
user_dict["c"] = "张三"
user_dict["d"] = "李四"
user_dict["a"] = "刘一"
user_dict["f"] = "赵六"
user_dict["e"] = "王五"
print(user_dict)
print(user_dict.move_to_end("b")) # 将key为b对应的元素移动到最后位置
print(user_dict)
print(user_dict.pop("a")) # 移除key为a的元素
print(user_dict.popitem()) # 移除最后一个
print(user_dict)