20180829--https://www.cnblogs.com/fnng/archive/2013/04/20/3032563.html

字典

字典的使用

现实中的字段及在Python中的字段都进行了构建,从而可以轻松查到某个特定的词语(键),从而找到它的意义(值)。

某些情况下,字典比列表更加适用:

  • 表征游戏棋盘的状态,每个键都是由坐标值组成的元组
  • 存储文件修改次数,用文件名作为键
  • 数字电话/地址本

创建一个人名列表,以及四位的分机号码

>>> names = ['zhangsan','lisi','wangwu','sunliu']
>>> numbers = ['2313','9102','3158','4326']
#通过下下方法查询
>>> numbers[names.index('zhangsan')]
'2313'

创建和使用字典

字典可以通过下面方式创建

>>> phonebook = {'zhangsai':'2313','lisi':'9102','wangwu':'3158'}

字典由多个键及与其对应的值构成,在上例中,名字是键,电话号码是值。

dict函数

可以用dict 函数,通过其他映射(比如其他字典)或(键,值)这样的序列对建立字典。

>>> items = [('name','gumby'),('age',42)]
>>> d = dict(items)
>>> d
{'age': 42, 'name': 'gumby'}
>>> d['name']
'gumby'

dict函数也可以通过关键字参数来创建字典,如下例所示:

>>> d = dict(name ='gumby', age=42)
>>> d
{'age': 42, 'name': 'gumby'}

格式化输出

%s 打印字符串

#简单数据库
#使用人名作为键的字典,每个人用另一个字典表示,其键'phone'和'addr'分别表示他们的电话号码和地址。

people = {
'zhangsan':{
'phone':'13012341234',
'addr':'tianfusanjie'
},
'lisi':{
'phone':'13112345678',
'addr':'tianfusijie'
},
'wangwu':{
'phone':'15612341234',
'addr':'tianfuwujie'
}
}

#针对电话号码和地址使用的描述性标签,会在打印输出的时候用到
labels = {
'phone':'phone number',
'addr':'address'
}
name = input('Name:')

#查找电话号码还是地址,使用正确的键:
request = input('phone number(p) or address(a)')
#使用正确的键:
if request == 'p':key = 'phone'
if request == 'a':key = 'addr'

#如果名字是字典中的有效键才打印信息:
if name in people : print("%s's %s is %s." %(name, labels[key],people[name][key]))

python学习记录(五)的更多相关文章

  1. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  2. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  3. python学习第五次笔记

    python学习第五次笔记 列表的缺点 1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2.列表只能按照顺序存储,数据与数据之间关联性不强 数据类型划分 数据类型:可变数据 ...

  4. Python学习第五堂课

    Python学习第五堂课推荐电影:华尔街之狼 被拯救的姜哥 阿甘正传 辛德勒的名单 肖申克的救赎 上帝之城 焦土之城 绝美之城 #上节内容: 变量 if else 注释 # ""& ...

  5. Python学习记录day8

    目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...

  6. Python学习记录day7

    目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...

  7. Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  8. 实验楼Python学习记录_挑战字符串操作

    自我学习记录 Python3 挑战实验 -- 字符串操作 目标 在/home/shiyanlou/Code创建一个 名为 FindDigits.py 的Python 脚本,请读取一串字符串并且把其中所 ...

  9. 我的Python学习记录

    Python日期时间处理:time模块.datetime模块 Python提供了两个标准日期时间处理模块:--time.datetime模块. 那么,这两个模块的功能有什么相同和共同之处呢? 一般来说 ...

  10. Python学习记录之(五)-----类进阶篇

    静态方法 类方法 属性方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调 ...

随机推荐

  1. ASP.NET Core Web程序托管到Windows 服务

    前言 在 .NET Core 3.1和WorkerServices构建Windows服务 我们也看到了,如何将workerservices构建成服务,那么本篇文章我们再来看看如何将web应用程序托管到 ...

  2. 阿里CTR预估:用户行为长序列建模

    本文将介绍Alibaba发表在KDD'19 的论文<Practice on Long Sequential User Behavior Modeling for Click-Through Ra ...

  3. Sql Server学习笔记

    1.指定路径创建数据库 create database student on--创建库的时候必须写 ( name=student, filename='E:\database\student.mdf' ...

  4. Spring中的beanPostProcess的作用

    BeanPostProcessor是Spring框架中非常重要的bean之一.贯穿在Spring容器中bean的初始化的整个过程. Spring中的beanpostProcess体系结构如下: 可以看 ...

  5. 人脸识别系统 —— 基于python的人工智能识别核心

    起因 自打用python+django写了一个点菜系统,就一直沉迷python编程.正好前几天公司boss要我研究一下人脸识别,于是我先用python编写了一个人脸识别系统的核心,用于之后的整个系统. ...

  6. 线性基 - 寻找异或第K大

    XOR is a kind of bit operator, we define that as follow: for two binary base number A and B, let C=A ...

  7. Webpack实战(四):教教你如何轻松搞定-预处理器(loader)

    前面三节,我主要给大家分享了有关webpack的一些配置的知识点,如何打包js文件,而如果我们遇到其他类型的资源如图片.css.字体font等等,我们该如何处理呢?今天会介绍预处理器(loader), ...

  8. Xmind: ZEN快捷键

  9. Nginx代理服务——正向代理

    正向代理 在/opt/app/code的目录下创建一个joy.html文件 <html> <head> <meta charset="utf-8"&g ...

  10. CSS中设置元素的圆角矩形

    圆角矩形介绍 在CSS中通过border-radius属性可以实现元素的圆角矩形. border-radius属性值一共有4个,左上.右上.左下.右下. border-radius属性值规则如下:第一 ...