经过上章的学习我们已经了解到了列表可以通过索引来获取对应的值,在本章我们将学到通过名字来索引数据,这种结构的类型称之为映射(maooing),在Python中字典是唯一内建的映射类型,其中的值我们称之为键值对,也就是由(键,值)组成映射关系。

一、初识字典dict

字典这个名称已经给出了有关这个数据结构功能的一些提示,在某些情况下字典比列表更实用,比如我们要纯粹人的姓名和电话,我们就可以通过姓名找到电话

   (1)字典的创建和使用

创建一个字典并且查看它的类型

>>> dic = {'a':'123','b':'1234','c':'12345', 'd':'123456'}
>>> type(dic)
<class 'dict'>

当我们想要查看b下面的数字的时候我我就这么操作,请注意单引号

>>> dic['b']
'1234'

(2)dict函数类似于list等

我们可以通过dict函数来通过其他映射关系的序列来创建字典

>>> tram = [('name','ala'),('aga','50')]

>>> d = dict(tram)
>>> d
{'name': 'ala', 'aga': '50'}

二、字典的基本操作

字典的基本操作很多方面与序列类型

(1)返回字典的长度,字典是以一个键值对当做一个元素

>>> d
{'name': 'ala', 'aga': '50'}
>>> len(d)
2

(2)更改键的值

>>> d
{'name': 'ala', 'aga': '50'}

>>> d['name']='xiao'
>>> d
{'name': 'xiao', 'aga': '50'}

(3)删除键值对

>>> del d['name']
>>> d
{'aga': '50'}

(4)检查字典中是否包含键为xxx的项如果有返回True否则False

>>> 'aga' in d
True

>>> 'da' in d
False

(5)字典的特性

①键的类型,可以是任何不可改变的类型

②自动添加,即使键是不存在的我们可以给他添加进入字典,而不需要使用append的方法

③成员资格,当查找当前键是否存在于此字典中这个的效率要比在列表中查找更高效

1、键的类型,键可以为数字类型浮点型等的

>>> s = {}
>>> s[20] = 'aaaa'
>>> s
{20: 'aaaa'}

>>> s[20.22]= 'bbb'
>>> s
{20.22: 'bbb', 20: 'aaaa'}

字典示例

以员工名字作为键,他的值为另外的字典,包含员工编号number和电话phone

address = {     'a':{        'number':'01',        'phone':'110'     },     'b':{        'number':'02',        'phone':'119'     },     'c':{        'number':'03',        'phone':'120'     }
}
当我们要查询b的编号时我们就要这么查询:表示address下键值对b下的键为number的值
print(address['b']['number'])
02
小练习1
需求:根据用户输入的用户名称得到用户的编号和电话
实现功能简陋的代码如下(Python3.5环境):
address = {     'a':{        'number':'01',        'phone':'110'     },     'b':{        'number':'02',        'phone':'119'     },     'c':{        'number':'03',        'phone':'120'     }
}
inpu = input("请输入查询的用户名:")
print("当前用户:"+inpu)
print('用户编号是:'+address[inpu]['number'])
print('用户电话是:'+address[inpu]['phone'])

Python成长之路第一篇(3)_初识字典的更多相关文章

  1. python成长之路第一篇(5)文件的基本操作

    一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ...

  2. Python成长之路第一篇(2)-初识列表和元组

    可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ...

  3. PYthon成长之路第一篇(1)__字符串初识

    今天一起走进python的代码世界,一起领悟python的魅力 在很多学习python的书中都会以 print  “Hello,world!” 这样的而一个程序为开始,那么其中的 hello,worl ...

  4. Python成长之路第一篇(2)__初识列表和元组

    可以将列表和元组当成普通的“数组”,他能保存任意数量任意类型的Python对象,和数组一样都是通过数字0索引访问元素,列表和元组可以存储不同类型的对象,列表和元组有几处重要区别.列表元素用([])包括 ...

  5. Python成长之路第一篇(4)_if,for,while条件语句

    有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句 一.万恶的加号 以前我们在print的时候如果要加上变量都有是使用+来作为连 ...

  6. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  7. python成长之路——第一天

    一.python版本间的差异: 1.1:2.x与3.x版本对比 version 2.x 3.x print print " "或者print()打印都可以正常输出 只能print( ...

  8. Python成长之路第二篇(1)_数据类型内置函数用法

    数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> a ...

  9. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...

随机推荐

  1. android:padding和android:margin的区别

    Android的Margin和Padding跟Html的是一样的.如下图所示:黄色部分为Padding,灰色部分为Margin. 通俗的理解: Padding 为内边框,指该控件内部内容,如文本/图片 ...

  2. 不同css样式适应不同屏幕大小实现自适应宽度

    @media screen and (判断属性){ CSS样式选择器 } 例如: <div class="silder_photo"></div> < ...

  3. HTML5的结构学习(3) --- 综合运用

    前面学习了HTML5新增的主体结构元素和新增的非主体结构元素, 而这里我们来学习如何去综合的运用这些新增元素. 1.大纲 HMTL5元素的关键就是将显示内容和便签类型紧密相关,提高了代码的语义化和可读 ...

  4. undefined reference to `_sbrk', `_write', `_lseek', `_read'

    现象: 在用GCC编译嵌入式MCU程序时,由于使用了第三方的库,出现了类似undefined reference to `_sbrk', `_write', `_lseek', `_read'的连接错 ...

  5. 轻松背后的N+疲惫——系统日志

    相信很多coder都有这样的癖好:“自恋”!!对自己编写的code总是那么的自信,自豪,Always believe it to be so perfect!! 不喜欢做单元测试(总觉得它就那样了能出 ...

  6. 深入研究 Win32 结构化异常处理(作者博客有许多SEH的研究文章)

    摘要 就像人们常说的那样,Win32 结构化异常处理(SEH)是一个操作系统提供的服务.你能找到的所有关于 SEH 的文档讲的都是针对某个特定编译器的.建立在操作系统层之上的封装库.我将从 SEH 的 ...

  7. WPF中实现先登录后启动主程序的方法

    原文:WPF中实现先登录后启动主程序的方法 我觉得先登录后启动应用主程序是一个很经典的问题,基本上如果要写一个应用程序都会用到这个的小环节.我在这个问题上挣扎了大半天才找到解决方案,我的实现方法我觉得 ...

  8. C语言的本质(16)——函数接口的传入参数与传出参数

    如果函数接口有指针参数,既可以把指针所指向的数据传给函数使用(称为传入参数),也可以由函数填充指针所指的内存空间,传回给调用者使用(称为传出参数),例如strcpy的函数原型为 char *strcp ...

  9. POJ3307+找规律

    /* 题意:求第N个productivity property数是谁. (productivity property数:就是这个数可以由另外的数的各个位上的乘积得到.) */ #include< ...

  10. ROS的tf_tree相关

    1.相关问答 http://answers.ros.org/question/11682/robot_pose_ekf-with-an-external-sensor/ http://ros-user ...