Python 有序字典(OrderedDict)与 普通字典(dict)

Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型

1.无序字典(普通字典):

my_dict = dict()my_dict["name"] = "lowman"my_dict["age"] = 26my_dict["girl"] = "Tailand"my_dict["money"] = 80my_dict["hourse"] = None
for key, value in my_dict.items():   print(key, value)

输出:

money 80
girl Tailand
age 26
hourse None
name lowman

可以看见,遍历一个普通字典,返回的数据和定义字典时的字段顺序是不一致的。

2.有序字典

import collections

my_order_dict = collections.OrderedDict()my_order_dict["name"] = "lowman"my_order_dict["age"] = 45my_order_dict["money"] = 998my_order_dict["hourse"] = None

for key, value in my_order_dict.items():
    print(key, value)

输出:

name lowman
age 45
money 998
hourse None

有序字典可以按字典中元素的插入顺序来输出。

注意:

  有序字典的作用只是记住元素插入顺序并按顺序输出。如果有序字典中的元素一开始就定义好了,后面没有插入元素这一动作,那么遍历有序字典,其输出结果仍然是无序的,因为缺少了有序插入这一条件,所以此时有序字典就失去了作用,所以有序字典一般用于动态添加并需要按添加顺序输出的时候。

如下面这个列子:

import collections

my_order_dict = collections.OrderedDict(name="lowman", age=45, money=998, hourse=None)

for key, value in my_order_dict.items():
    print(key, value)

输出:

hourse None
age 45
money 998
name lowman

发现输出还是无序的,因为在定义有序字典的同时也定义了初始值,没有存在按序添加的操作,所以有序字典是没有记录插入字段的顺序,最后遍历时,得到数据的顺序仍然是无序的。

原文地址:https://www.cnblogs.com/lowmanisbusy/p/10257360.html

时间: 2024-07-28 18:07:40

Python 有序字典(OrderedDict)与 普通字典(dict)的相关文章

python创建有序字典OrderedDict()

python 有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections """ import collections # 通过OrderedDict类创建的字典是有序的 dic = collections.OrderedDict() dic['k1'] = 'v1' dic['k2'] = 'v2' dic['k3'] = 'v3' print dic "

Python_Day_05 计数器(counter),有序字典(OrderDict),默认字典(defaultdict),可命名元祖(namedtuple),双向队列(deque),单项队列(deuqe.Queue)

Counter(计数器) 是一个字典的子类,存储形式同样为字典,其中存储的键为字典的元素,值为元素出现的次数,在使用之前我们需要先导入文件 import collections 初始化一个计数器 import collections # 初始化一个计数器 c = collections.Counter('sldfjoaoaufdlfuaof') print(c) # Counter({'f': 4, 'o': 3, 'a': 3, 'd': 2, 'u': 2, 'l': 2, 'j': 1,

1.6小白学python入门基础-----元祖,字典,集合

今日课程内容 一,元祖 二.字典 三.集合 一.元祖 1.1元祖的定义: 元祖使用()元素用逗号隔开的一系列元素. #ti=(1,0) #t3=tuple((1,2)) #t4=()#空元素 #t5=(1,)#一个元素 1.2元祖的特性: 1.有序存储,可以存储多个数据 2.不可变(注意:内部可以包含对象,可变对象依旧可变) 1.3元祖的常用操作: 1.因为有序存储所以可以通过索引取值 2.切片 3.len(item元素的个数) 1.4内置方法: #print(t.count)#表示该数据集合可

python的列表,元组和字典简单介绍

引 入 java                                   python 存取多个值:数组或list集合 ------------------------> 列表,元组 key-value格式:    Map        ------------------------>    字典 自己学习发现,java跟python这两门面向对象语言在数据类型的定义上,很多思想都是互通的,这里不说java,简单介绍一下python的列表,元组和字典. 一.列表 List: 最通

Python 学习日记第三篇 -- 字典

一.字典 python中的字典不是序列,而是一种映射:不通过位置而是通过键存储.字典是可变的. 1.字典的映射操作 使用{}定义字典,以key:value形式存储数据,在字典中key是唯一的 >>> one_dict = {'name':"jym",'age':23,'addr':'xinjiang'} #通过key查找数据 >>> one_dict['name'] 'jym #修改 >>> one_dict['name'] = &

Python学习进程(10)字典

    本节介绍Python中的字典:是另一种可变容器模型,且可存储任意类型对象.     (1)字典简介: 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 注意:键必须是唯一的,但值则不必.值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组.     (2)字典的操作: 包括创建字典.访问字典元素.修改字典的值.删除字典指定

python基础教程学习笔记---(4)字典

序列是python中的一种数据结构,映射是另一种.映射(mapping)通过名字来引用值.python内建的唯一一种映射结构是字典.字典中的值没有特殊的顺序,但都存储在一个特定的键中.键可以是数字.字符串甚至数元组. 1.字典的使用: 序列通过索引来找到元素的取值. 字典通过键来获取它的值. 字段比列表在某些方面更加适用: ①游戏棋盘是用坐标值来组成的 ②文件是用文件名来确定的 ③数字电话,地址对应一个联系人 这些都不能通过索引来代替. 2.字典的创建: 字典是由键值对组成,一个键值对称为一项.

python学习笔记3(元组、字典)

Python中有三种内置的数据类型.dictionary(字典).List(列表)和tuple(元组). 元组(tuple) 只读列表(列表的值可以修改,元组的不可以) 元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", &

Python(二)-字符串、列表、字典 、元组、集合

版权声明: 本文作者为-陈鑫 本文的所有内容均来陈鑫总结,未经本人许可,禁止私自转发及使用. QQ: 499741233 E-mail: [email protected] 第1章 字符串处理 1.1 字符串转换 1.1.1 format() 字符串格式化 描    述: 1.花括号声明{}.用于渲染前的参数引用声明,花括号里面可以用数字代表引用参数的序号,或者变量直接引用. 2.从format参数引入的变量名. 3.冒号:为空格填充 4.字符位数声明. 5.千分位的声明. 6.变量类型的声明: