跟老齐学Python之dict()的操作方法


Posted in Python onSeptember 24, 2014

dict的很多方法跟list有类似的地方,下面一一道来,并且会跟list做一个对比

嵌套

嵌套在list中也存在,就是元素是list,在dict中,也有类似的样式:

>>> a_list = [[1,2,3],[4,5],[6,7]]
>>> a_list[1][1]
5
>>> a_dict = {1:{"name":"qiwsir"},2:"python","email":"qiwsir@gmail.com"}
>>> a_dict
{1: {'name': 'qiwsir'}, 2: 'python', 'email': 'qiwsir@gmail.com'}
>>> a_dict[1]['name']  #一个嵌套的dict访问其值的方法:一层一层地写出键
'qiwsir'

获取键、值

在上一讲中,已经知道可以通过dict的键得到其值。例上面的例子。

还有别的方法得到键值吗?有!python一般不是只有一个方法实现某个操作的。

>>> website = {1:"google","second":"baidu",3:"facebook","twitter":4}

>>>#用d.keys()的方法得到dict的所有键,结果是list
>>> website.keys()
[1, 'second', 3, 'twitter']

>>>#用d.values()的方法得到dict的所有值,如果里面没有嵌套别的dict,结果是list
>>> website.values()
['google', 'baidu', 'facebook', 4]

>>>#用items()的方法得到了一组一组的键值对,
>>>#结果是list,只不过list里面的元素是元组
>>> website.items()
[(1, 'google'), ('second', 'baidu'), (3, 'facebook'), ('twitter', 4)]

从上面的结果中,我们就可以看出,还可以用for语句循环得到相应内容。例如:

>>> for key in website.keys():
...   print key,type(key)
... 
1 <type 'int'>
second <type 'str'>
3 <type 'int'>
twitter <type 'str'>

>>>#下面的方法和上面的方法是一样的
>>> for key in website:
...   print key,type(key)
... 
1 <type 'int'>
second <type 'str'>
3 <type 'int'>
twitter <type 'str'>

以下两种方法等效:

>>> for value in website.values():
...   print value
... 
google
baidu
facebook
4

>>> for key in website:
...   print website[key]
... 
google
baidu
facebook
4

下面的方法又是等效的:

>>> for k,v in website.items():
...   print str(k)+":"+str(v)
... 
1:google
second:baidu
3:facebook
twitter:4

>>> for k in website:
...   print str(k)+":"+str(website[k])
... 
1:google
second:baidu
3:facebook
twitter:4

下面的方法也能得到键值,不过似乎要多敲键盘

>>> website
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}
>>> website.get(1)   
'google'
>>> website.get("second")
'baidu'

其它几种常用方法

dict中的方法在这里不做过多的介绍,因为前面一节中已经列出来类,看官如果有兴趣可以一一尝试。下面列出几种常用的

>>> len(website)
4
>>> website
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}

>>> new_web = website.copy()  #拷贝一份,这个拷贝也叫做浅拷贝,对应着还有深拷贝。
>>> new_web           #两者区别,可以google一下。
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}

删除键值对的方法有两个,但是两者有一点区别

>>>#d.pop(key),根据key删除相应的键值对,并返回该值
>>> new_web.pop('second')
'baidu'

>>> del new_web[3]   #没有返回值,如果删除键不存在,返回错误
>>> new_web
{1: 'google', 'twitter': 4}
>>> del new_web[9]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 9

用d.update(d2)可以把d2合并到d中。

>>> cnweb
{'qq': 'first in cn', 'python': 'qiwsir.github.io', 'alibaba': 'Business'}
>>> website
{1: 'google', 'second': 'baidu', 3: 'facebook', 'twitter': 4}

>>> website.update(cnweb)  #把cnweb合并到website内
>>> website         #变化了
{'qq': 'first in cn', 1: 'google', 'second': 'baidu', 3: 'facebook', 'python': 'qiwsir.github.io', 'twitter': 4, 'alibaba': 'Business'}
>>> cnweb          #not changed
{'qq': 'first in cn', 'python': 'qiwsir.github.io', 'alibaba': 'Business'}

在本讲最后,要提醒看官,在python3中,dict有不少变化,比如能够进行字典解析,就类似列表解析那样,这可是非常有意思的东西哦。

Python 相关文章推荐
python爬虫常用的模块分析
Aug 29 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
python获取本地计算机名字的方法
Apr 29 Python
Python 模板引擎的注入问题分析
Jan 01 Python
python3实现跳一跳点击跳跃
Jan 08 Python
Python变量类型知识点总结
Feb 18 Python
python把1变成01的步骤总结
Feb 27 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
python自动化调用百度api解决验证码
Apr 13 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
Apr 14 Python
Python单链表的简单实现方法
Sep 23 #Python
Python中bisect的用法
Sep 23 #Python
python元组操作实例解析
Sep 23 #Python
Python中实现两个字典(dict)合并的方法
Sep 23 #Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 #Python
Python中的类学习笔记
Sep 23 #Python
Python函数嵌套实例
Sep 23 #Python
You might like
PHP版本如何选择?应该使用哪个版本?
2015/05/13 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
一百多行python代码实现抢票助手
2018/09/25 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
自我鉴定思想方面
2013/10/07 职场文书
导师就业推荐信范文
2014/05/22 职场文书
党支部对照检查材料
2014/08/25 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
学生检讨书
2015/01/27 职场文书
学校党支部承诺书
2015/04/30 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
mysql中关键词exists的用法实例详解
2022/06/10 MySQL
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技