Python基础篇(四)
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基础篇(四)的更多相关文章
- Python基础篇(四)_组合数据类型的基本概念
Python基础篇——组合数据类型的基本概念 集合类型:元素的集合,元素之间无序 序列类型:是一个元素向量,元素之间存在先后关系,通过序号进行访问,没有排他性,具体包括字符串类型.元组类型.列表类型 ...
- python基础篇(四)
PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...
- python基础篇(六)
PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...
- python基础篇(五)
PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...
- python基础篇(一)
PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...
- python基础篇(二)
PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...
- python基础篇(三)
PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...
- python基础篇(文件操作)
Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
- Python基础篇(set集合)
Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...
随机推荐
- opencv+vs配环境
首先,一定要注意debug和release下配的项目设置是有区分的!!!!!!!!!!! 1.注意自己的电脑是64位还是32位 2.要在环境变量中设置环境变量,环境变量从前向后扫描,用64位环境变量时 ...
- html日历(1)
<html> <head> <link rel="stylesheet" type="text/css" href="S ...
- Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config解决
出现这个问题往往伴随 HTTP-500错误 报错信息: HTTP Status - Handler processing failed; nested exception is java.lang. ...
- 多线程编程学习笔记——使用异步IO(一)
接上文 多线程编程学习笔记——使用并发集合(一) 接上文 多线程编程学习笔记——使用并发集合(二) 接上文 多线程编程学习笔记——使用并发集合(三) 假设以下场景,如果在客户端运行程序,最的事情之一是 ...
- CentOS系统下Redis安装和自启动配置的步骤
相信大家都知道Redis是一个C实现的基于内存.可持久化的键值对数据库,在分布式服务中常作为缓存服务.所以这篇文章将详细介绍在CentOS系统下如何从零开始安装到配置启动服务.有需要的可以参考借鉴. ...
- HTML meta refresh 刷新与跳转(重定向)页面
下面为各位整理了一些HTML meta refresh 刷新与跳转(重定向)页面的例子吧,后面本站长自己也补充了一些js页面刷新与跳转例子吧. refresh 属性值 -- 刷新与跳转(重定向)页 ...
- 认识Java(2)
注释 对程序的一段文字描述 可方便其他用户的阅读,增加代码的可读性.可以注销掉代码,等需要的时候再用. 编译器会自动忽视被注释的内容. 分类: 单行注释 // 多行注释 /* */ 文档注释/** * ...
- Git学习(2)-使用Git 代码将本地文件提交到 GitHub
上次随笔写到git的安装和运用命令窗口创建本地版本库,这次主要讲一下用git代码将本地文件提交到GitHub上. 前提是有一个GitHub账号. 1.创建一个新的版本库,进入到你本地项目的根目录下(我 ...
- 遇到安装app不识别的情况
一般->blokfile->证书设定设置
- ios 一步一步学会自定义地图吹出框(CalloutView)-->(百度地图,高德地图,google地图)
前言 在 ios上边使用地图库的同学肯定遇到过这样的问题:吹出框只能设置title和subtitle和左右的view,不管是百度地图还是高德地图还是自带的 google地图,只提供了这四个属性,如果想 ...