Python中的字典类似于Java中的Map,数据以键值对的形式存储。

字典可以用以下的方式使用:

>>> phonebook = {"alice":"6100","bruce":"6230","beth":"9120"}
     >>> phonebook.get("alice")
     '6100'

获取字典中某个键的值,可以使用phonebook.get("alice"),也可以使用phonebook["alice"]。

字典使用大括号将数据置于其中,列表使用的是方括号,元组使用的是圆括号。字典的多个键值对之间用逗号隔开,键值对之间用逗号隔开。

就像list函数可以将序列转换为列表,dict函数将序列转换为字典。  tuple转换的是元组,str转换的是字符串。

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

下面是一个使用字典的小例子:

people = {
          "Alice" :{
               "phone" : "8300",
               "age" : "20"
          },
          "Bruce" :{
               "phone" : "7100",
               "age" : "21"
          }
     }

lables = {
          "phone" : "phone number is ",
          "age " : "age is"
     }

name = input("name: ")
     request = input("request :")

if request == "p" : key = "phone"
     if request == "a" : key = "age"

if name in people : print("%s's %s %s" % \
          (name, lables[key], people[name][key]))

元组作为字典的键时也是很有用的,例如:

>>> phonebook = {"alice":"6100","bruce":"6230","beth":"9120"}
     >>> print("alice phone number is %(alice)s" % phonebook)
     alice phone number is 6100

上述的替换方式在模板系统中非常有用。

clear方法

字典的clear方法用于清除字典中所有的键值对:

>>> phonebook = {"alice":"6100","bruce":"6230","beth":"9120"}
     >>> phonebook.clear()
     >>> phonebook
     {}

copy方法

2.x版本的Python中的复制和Java类似,分为浅复制和深复制。当希望返回的是对象的副本而不仅仅是地址时,要考虑使用深复制。

3.x版本中的copy方法已经是深复制了,而且没有了deepcopy方法

keys方法 

>>> {}.fromkeys(["name","age"])
    {'age': None, 'name': None}
    >>> database = {"name":"john","job":"programmer,teacher"}
    >>> database.keys()
    dict_keys(['job', 'name'])

 items方法

items方法将字典以键值对列表的形式返回:

>>> database = {"name":"john","job":"programmer,teacher"}
     >>> it = database.items()
     >>> list(it)
     [('job', 'programmer,teacher'), ('name', 'john')]

pop方法

pop方法用于返回一个键的值,并将该键值对删除:

>>> database = {"name":"john","job":"programmer,teacher"}
     >>> database.pop("name")
     'john'
     >>> database
     {'job': 'programmer,teacher'}

popitem方法返回的是任意一个键的值,并将该键值对删除:
     >>> database = {"name":"john","job":"programmer,teacher"}
     >>> database.popitem()
     ('job', 'programmer,teacher')
     >>> database
     {'name': 'john'}

update方法

update方法用于一个字典的项更新另一个字典,没有相同的则添加,有相同的则更新:

>>> database = {"name":"john","job":"programmer,teacher"}
     >>> newdata = {"job":"actor"}
     >>> database.update(newdata)
     >>> database
     {'job': 'actor', 'name': 'john'}

也可以直接赋值:database["job"] = "actor"

关于print函数更多的用法:

1.使用逗号输出

print函数输出的是字符串,会将用逗号隔开的部分汇聚成一个大的字符串

>>> print("age:",42)
     age: 42

Python基础篇(四)的更多相关文章

  1. Python基础篇(四)_组合数据类型的基本概念

    Python基础篇——组合数据类型的基本概念 集合类型:元素的集合,元素之间无序 序列类型:是一个元素向量,元素之间存在先后关系,通过序号进行访问,没有排他性,具体包括字符串类型.元组类型.列表类型 ...

  2. python基础篇(四)

    PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...

  3. python基础篇(六)

    PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...

  4. python基础篇(五)

    PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...

  5. python基础篇(一)

    PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...

  6. python基础篇(二)

    PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...

  7. python基础篇(三)

    PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...

  8. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  9. Python基础篇(set集合)

    Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...

随机推荐

  1. Vijos P1785 同学排序【模拟】

    同学排序 描述 现有m位同学,第1位同学为1号,第2位同学为2号,依次第m位同学为m号.要求双号的学生站出来,然后余下的重新组合,组合完后,再次让双号的学生站出来,重复n次,问这时有多少同学出来站着? ...

  2. Bellman-Ford 求含负权最短路

    该算法详解请看   https://www.cnblogs.com/tanky_woo/archive/2011/01/17/1937728.html 单源最短路   当图中存在负权边时 迪杰斯特拉就 ...

  3. C#中的多线程超时处理实践

    最近我正在处理C#中关于timeout行为的一些bug.解决方案非常有意思,所以我在这里分享给广大博友们. 我要处理的是下面这些情况: 我们做了一个应用程序,程序中有这么一个模块,它的功能向用户显示一 ...

  4. python笔记三(面向对象)

    Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...

  5. c++(选择排序)

    选择排序是和冒泡排序差不多的一种排序.和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,才会发生交换.怎么交换呢?我们可以以下面一组数据作为测试: 2, 1, 5, 4, 9 第一 ...

  6. css3 样式 圆角

    第一次学习css3 现在总结一下,方便以后查看: 1.border-radius:25px; 这个用来增加圆角属性 2.CSS3边框阴影 在 CSS3 中,box-shadow 用于向方框添加阴影: ...

  7. 如何动态修改网页的标题(title)?

    有时候我们需要复用一个页面,但是又希望他们拥有各自的标题,这时候就需要动态的去更改页面的title了,不然所有页面都是一个标题. 这时候就会想到使用js或jQuery去实现了. 1.js方式. 首先, ...

  8. phpStudy2016 配置多个域名期间遇到的问题

    http://www.cnblogs.com/ssfs/p/6255791.html 第一步 在C:\Windows\System32\drivers\etc下的hosts文件下添加   第二步   ...

  9. (实例篇)LNMP 1.4一键安装包,安装教程

    http://mp.weixin.qq.com/s/l6ijKBwD6tt8jkZytWEIsw https://lnmp.org/download.html 2017-09-11 学习与分享 PHP ...

  10. ngRx 官方示例分析 - 6 - Effect

    @ngrx/effect 前面我们提到,在 Book 的 reducer 中,并没有 Search 这个 Action 的处理,由于它需要发出一个异步的请求,等到请求返回前端,我们需要根据返回的结果来 ...