1.概述

字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据,而且是Python中唯一的内建映射型数据结构。

比如有一个小学生的期末成绩,语文:79,数学:80,英语:92。我们可以用一组列表表示科目,再用另一组列表表示成绩。但是这样,就硬生生把一个学生分成了两半,太残忍了!

为了保存这种映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。

形象地看,字典中 key 和 value 的关联关系如下图所示:

字典保存的关联数据

由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此一个字典型变量中的 key 不允许重复。

2.创建字典类型

程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 就是 Python 中的字典类型。

在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。

如下:

scores = {'语文': 89, '数学': 92, '英语': 93}

print(scores)

# 空的花括号代表空的dict

empty_dict = {}

print(empty_dict)

# 使用元组作为dict的key

dict2 = {(20, 30):'good', 30:'bad'}

print(dict2)

上面程序中第 1 行代码创建了一个简单的 dict,该 dict 的 key 是字符串,value 是整数;第 4 行代码使用花括号创建了一个空的字典;第 7 行代码创建的字典中第一个 key 是元组,第二个 key 是整数值,这都是合法的。

需要指出的是,元组可以作为 dict 的 key,但列表不能作为元组的 key。这是由于 dict 要求 key 必须是不可变类型,但列表是可变类型,因此列表不能作为元组的 key。

那标量型变量可以作为字典的key么?这个是可以的,比如:

>>> x=3

>>> y={x:15}

>>> y

{3: 15}

>>> type(y)

在使用 dict() 函数创建字典时,可以传入多个列表或元组参数作为 key-value 对,每个列表或元组将被当成一个 key-value 对,因此这些列表或元组都只能包含两个元素。例如如下代码:

vegetables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)]# 创建包含3组key-value对的字典

dict3 = dict(vegetables)

print(dict3) # {'celery': 1.58, 'brocoli': 1.29, 'lettuce': 2.19}

cars = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]]

# 创建包含3组key-value对的字典

dict4 = dict(cars)

print(dict4) # {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}

如果不为 dict() 函数传入任何参数,则代表创建一个空的字典。例如如下代码:

# 创建空的字典

dict5 = dict()

print(dict5) # {}

还可通过为 dict 指定关键字参数创建字典,此时字典的 key 不允许使用表达式。例如如下代码:

# 使用关键字参数来创建字典

dict6 = dict(spinach = 1.39, cabbage = 2.59)

print(dict6) # {'spinach': 1.39, 'cabbage': 2.59}

上面粗体字代码在创建字典时,其 key 直接写 spinach、cabbage,不需要将它们放在引号中。

参考

python建立字典的程序_Python中如何创建字典Dict相关推荐

  1. python建立字典的程序_python中的字典

    字典:一个关联数组或散列表 ,可通过关键字索引的对象. 字典的用途:定义一个可包含多个命名字段的对象,也可以用作快速查找无序数据的容器 字典是python中最完善的数据类型 在程序中最常用于存储和处理 ...

  2. python读取字典元素笔记_Python中列表、字典、元组数据结构的简单学习笔记

    列表 列表是Python中最具灵活性的有序集合对象类型.与字符串不同的是,列表可以包含任何类型的对象:数字.字符串甚至其他列表.列表是可变对象,它支持原地修改的操作. Python的列表是: 任意对象 ...

  3. python嵌套是什么意思_python中的嵌套字典是什么意思?

    如果大家不知道本章内容主题,那就先从嵌套入手,光从字面意思就可以了解到,一定是把已经存在事物在增加一层,这样大家可以承上启下在回顾下本章主题啦~是存在一样的意义,好啦,下面就开始给大家正式介绍,但是不 ...

  4. python单链表就地反转_Python中的就地字典反转

    这不适用,但使用popitem()消耗oldDict from collections import defaultdict def invert(oldDict): invertedDict = d ...

  5. python怎样定义一个数组_python中数组创建

    python中数组.列表.字典是最为常见的.最近在学习有关数组的语句,就把自己的学习的一些内容写下来. 首先就是创建数组. 方法1:创建数组的方法很简单直接,就是在shell界面写出来想要创建的数组 ...

  6. python中语法错误-python冒号语法错误python中如何创建字典

    python字典定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ...

  7. python中怎样向字典中添加值_python中向一个字典中加值

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...

  8. python编程字典100例_python中字典(Dictionary)用法实例详解

    本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映射结构的数据类型,由无序的"键-值对"组成. ...

  9. python集合和字典的区别_Python中的字典和集合

    导语:本文章记录了本人在学习Python基础之数据结构篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流. 本文重点: 1.掌握常见的字典创建,查询,判别方法: 2.了解字典中的 ...

最新文章

  1. RuntimeError: Integer division of tensors using div or / is no longer supported, and in a future rel
  2. linux boost filesystem程序链接,在Linux中链接Boost库
  3. imag--复数的虚数部分
  4. VTK:IO之ReadOBJ
  5. QT中的QButtonGroup
  6. Eclipse插件开发中对于外部Jar包和类文件引用的处理(彻底解决插件开发中的NoClassDefFoundError问题)...
  7. 解读Scorm(0):标准
  8. J2EE 领域的一些技术框架结构图
  9. Codeforces Round #465 935C. Fifa and Fafa计算几何
  10. android NDK 详解
  11. 基于Vue结合高德地图api做的一个坐标拾取组件
  12. Dxdesigner SCH to Mentor PCB
  13. 从社交网络图的edgelist得到adj
  14. Ubuntu18.04 配置 bond4 + RG-5750-LACP
  15. 光分配网(ODN)一级分光和二级分光的区别及应用场景
  16. 高精度模数转换器,MS1112,ADS1112
  17. 音视频技术开发周刊 | 248
  18. PCB线路板的制作工艺流程分享!2021-08-21
  19. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
  20. java整型_java中长整型定义

热门文章

  1. MPLS ××× Carrier Supporting Carrier Option AB(二)
  2. JavaScript 弹出子窗体并返回结果到父窗体
  3. Web安全实践(6)web应用剖析之信息提炼
  4. 《OD学spark》20161022
  5. ActionScript 3.0编译器编译错误大全【转】
  6. C++_类和对象_C++运算符重载_加号运算符重载_实现两个对象相加_对象和int类型相加_通过成员函数重载+号_全局函数重载+号_以及重载_运算符重载函数实现---C++语言工作笔记055
  7. C++_类和对象_对象特性_友元_友元类_在一个类中声明另一类作为自己的友元类_可以访问自己类中的private变量---C++语言工作笔记053
  8. 大数据之-Hadoop_组成---大数据之hadoop工作笔记0013
  9. Linux工作笔记040---Centos8.2安装mysql5.7.18_已经测试成功
  10. 数据库工作笔记004---mysql对结果字段进行判断的函数_Case when等