字典是一种映射类型,字典用"{ }"标识,它是一个无序的“键(key) : 值(value)”对集合。“键(key)”必须使用不可变类型,如整型、浮点型、复数型、布尔型、字符串、元组等,但不能使用诸如列表、字典、集合或其它可变类型作为字典的键。在同一个字典中,“键(key)”必须是唯一的,但“值(value)”是可以重复的。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

(1)创建字典

使用赋值运算符将使用{ }括起来的“键:值”对赋值给一个变量即可创建一个字典变量。

>>> dict1 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

>>> dict1['Jack'] ='1234'                            #为字典添加元素

>>> print(dict1)                                   # 输出完整的字典

{'Alice': '2341', 'Beth': '9102', 'Cecil': '3258', 'Jack': '1234'}

>>> type(dict1)

#显示dict1的类型为dict

(1)创建字典

可以使用字典dict的构造方法dict(),利用键值对序列构建字典:>>> items=[('one',1),('two',2),('three',3),('four',4)]

>>> dict2 = dict(items)

>>> print(dict2)

{'one': 1, 'two': 2, 'three': 3, 'four': 4}

可以通过关键字创建字典,如下所示:

>>> dict3 = dict(one=1,two=2,three=3)

>>> print(dict3)

{'one': 1, 'two': 2, 'three': 3}

(2)访问字典里的值

通过“字典变量[key]”的方法返回键key对应的值value:

>>> dict1={'Alice': '2341', 'Beth': '9102', 'Cecil': '3258', 'Jack': '1234'}

>>> print (dict1['Beth'])                            # 输出键为'Beth'的值

9102

>>> print (dict1.values())                           # 输出所有值

dict_values(['2341', '9102', '3258', '1234'])

>>> print(dict1.keys())                             # 输出所有键

dict_keys(['Alice', 'Beth', 'Cecil', 'Jack'])

>>> dict1.items()                                 #返回所有元素

dict_items([('Alice', '2341'), ('Beth', '9102'), ('Cecil', '3258'), ('Jack', '1234')])

(3)字典元素添加、修改与删除

向字典添加新元素的方法是增加新的键/值对:

>>> school={'class1': 60, 'class2': 56, 'class3': 68, 'class4': 48}

>>> school['class5']=70   # 添加新的元素

>>> school['class1']=62        # 更新 class1的值

>>> school

{'class1': 62, 'class2': 56, 'class3': 68, 'class4': 48, 'class5': 70}

由上可知,当以指定“键”为下标为字典元素赋值时,有两种含义:①若该“键”不存在,则表示为字典添加一个新元素,即一个“键:值”对;②若该“键”存在,则表示修改该“键”所对应的“值”。

使用字典对象的update()方法可以将另一个字典的元素一次性全部添加到当前字典对象中,如果两个字典中存在相同的“键”,则只保留另一个字典中的键值对,如下所示:

>>> school1={'class1': 62, 'class2': 56, 'class3': 68, 'class4': 48, 'class5': 70}

>>> school2={ 'class5': 78,'class6': 38}

>>> school1.update(school2)

>>> school1     #'class5'所对应的值取school2中'class5'所对应的值78

{'class1': 62, 'class2': 56, 'class3': 68, 'class4': 48, 'class5': 78, 'class6': 38}

(4)字典对象常用的方法

一旦字典对象被创建,可以使用字典对象的方法来操作字典,字典对象的常用方法如表1-8所示,其中dict1是一个字典对象:

方法

描述

dict1.copy()

返回一个字典的浅复制,即复制时只会复制父对象,而不会复制对象的内部的子对象,复制后对原dict的内部的子对象进行操作时,浅复制dict会受操作影响而变化。

dict1.fromkeys(seq[, value]))

创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值

dict1.get(key, default=None)

返回指定键key的值,如果值不在字典中返回默认值

dict1.items()

以列表形式返回可遍历的(键, 值) 元组数组

dict1.keys()

以列表返回一个字典所有的键

dict1.update(dict2)

把字典dict2的键/值对更新到dict1里

dict1.values()

以列表返回字典中的所有值

>>> dict5 = {'Spring': '春', 'Summer': '夏', 'Autumn': '秋', 'Winter': '冬'}

>>> dict5.items()

dict_items([('Spring', '春'), ('Summer', '夏'), ('Autumn', '秋'), ('Winter', '冬')])

>>> for key,values in dict5.items():    # 遍历字典列表

print(key,values)

Spring 春

Summer 夏

Autumn 秋

Winter 冬

(5)字典推导式

字典推导和列表推导的使用方法是类似的,只不过是把中括号改成大括号。

>>> dict6 = {'physics': 1, 'chemistry': 2, 'biology': 3, 'history': 4}

#把dict6的每个元素键的首字母大写、键值2倍

>>> dict7 = { key.capitalize(): value*2 for key,value in dict6.items() }

>>> dict7

{'Physics': 2, 'Chemistry': 4, 'Biology': 6, 'History': 8}

python中字典是什么类型_Python入门-Python中的基本数据类型-dictionary(字典)相关推荐

  1. python中list是什么类型_Python 入门系列 —— 13. List 类型简介

    List List 常用于将多个值存储在一个变量中,在 Python 中 List 是四个内建集合之一,其他三个为:Tuple,Set 和 Dictionary,它们都有不同的特性和用途. List ...

  2. python程序语法元素的描述_Python入门——Python程序语法元素

    Python程序语法元素 缩进:表达程序的格式框架 严格明确, 缩进是语法的一部分,缩进不正确程序运行错误 所属关系, 缩进是表达代码间包含和层次关系的唯一手段 长度一致, 程序内缩进长度统一 注释: ...

  3. python集合的两种类型_python 入门之 – 集合类型(十九)

    在python中,集合是一个无序的,不重复的数据组合,他的主要工作如下: 1.去重,把一个列表变成集合,就自动去重了 2.关系测试,测试两组数据之间的交集.差集.并集等关系 我来举个例子,前两个月出了 ...

  4. python散点图图例显示标记点类型_python – matplotlib散点图中的标记点

    参见英文答案 > Display numbers instead of points using pyplot                                    1个 > ...

  5. python2 float类型_Python学习笔记2:基本数据类型

    Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象 ...

  6. python公开课免费-公开课 | Python大牛免费带你4天入门Python

    原标题:公开课 | Python大牛免费带你4天入门Python 作为刚入门的同学,无非视频.书籍.网站帖子之类的学习方式,视频虽然讲得详细,但是所需要花费的时间也是巨大的,据我了解很少有人能持之以恒 ...

  7. c++ 不允许使用不完整的类型_Python入门高级教程--Python?变量类型

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  8. python中关键字 表示空类型_python中什么表示空类型

    python中什么表示空类型? python中None表示空类型.表示该值是一个空对象,空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的 ...

  9. python中list是什么类型_Python中的list数据类型

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

最新文章

  1. Ubuntu 14.04 64bit上磁力链爬虫dht部署指南
  2. 教程:11、文件系统
  3. 错误传播 --try{}catch(e){console.log(e)}
  4. python正确的输入语句_手把手教你在python中如何使用while True语句
  5. Link error 1112
  6. 工厂模式类图梳理笔记
  7. HyperLynx(三)传输线类型及相关设置
  8. 2020洪灾地图_卫星地图看洪灾:“告急”的鄱阳湖发生了什么?
  9. 从苏宁电器到卡巴斯基第05篇:我的创业梦
  10. AddressBook、AddressBookUI、Contacts、ContactsUI 通讯录操作
  11. x86 单线并发多拨_OpenWrt ADSL单线多拨,负载均衡(仅供参考)
  12. 58同城数据爬取+可视化分析
  13. Android 扫码盒子全局接收付款码
  14. QT中自定义控件和插件大致方法
  15. 在带头结点单链表中查找最大值,将其与最后一个元素交换(交换值)
  16. vi模式下的几种常用的保存文件并退出命令
  17. 【中科院】分子生物学-朱玉贤第四版-笔记-第 9 讲 重组 DNA 克隆技术
  18. 分页的php处理,分页处理的PHP类
  19. 计算机主板包括哪四种版型,硬件百科:版型不同的主板有什么区别?
  20. 笔记本电脑硬盘坏了怎么办

热门文章

  1. p2p传输php,P2P在IPTV中解决数据服务器传输瓶颈
  2. 图片大小与什么有关?图片大小怎么改小?
  3. 云渲染答疑:动画渲染价格一般多少?
  4. 前程无忧亚信java面试题_亚信科技面试题及参考答案
  5. Hexo博客提交百度和Google收录
  6. 带权重的随机数算法的实现
  7. Python 提速大杀器之 numba 篇
  8. 工艺品娃娃和塑料娃娃的区别?
  9. iOS设备屏幕分辨率分布
  10. 嵌入式linux详解,嵌入式Linux详解