Python快速入门学习笔记(二)
注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
使用dict和set
dict
dict(字典)是Python的内置类型,在其他高级语言中称为map,使用键-值(key-value)存储,具有极快的查找速度。
dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字,无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。这就是dict的查找原理。
如,要查询某个学生的成绩,可用dict定义成绩单如下:
d = ['Larry':95,'Tony',88,'Jack',75]
再根据名字查询成绩:
d['Larry']
输出结果为:
95
由于每一个key只对应一个value(即每一个学生只对应一个成绩),因此,多次对一个key插入value,会冲掉原来的值。如:
d['Tony'] #输出88
d['Tony'] = 78 #输出78
查询某个key是否存在于字典的方法:
1.用‘in’来判断。如:
'Mary' in d #返回false
'Larry' in a #返回true
2.通过dict提供的get()方法,若不存在,返回一个错误信息,如:
d.get('Mary',-1) #返回-1
删除某个key,可以使用pop()函数:
d.pop('Tony')
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。要创建一个set,需要提供一个list作为输入集合:
s = [('Larry','Tony','Jack')]
再输入s,返回值为:
set = [(‘Larry’,’Tony’,’Jack’)]
通过add(key)增加元素,如:
s.add('Mary')
通过remove(key)删除元素,如:
s.remove('Mary')
set也可看做集合,因此可以做交、并、差等操作。如:
s1 = [(1,2,3)]
s2 = [(2,3,4)]
s3 = [(5,6,7)]
s1 & s2 #返回set[(2,3)]
s1 | s2 #返回set[(1,2,3,4)]
最新文章
- 解析大型.NET ERP系统 高质量.NET代码设计模式
- iOS开发UI篇—无限轮播(新闻数据展示)
- 思甜雅--关于qq的NABCD模型分析
- (转) How to install eclipse in ubuntu 12.04
- 启动tomcat后struts框架报异常严重: Exception starting filter struts2 Unable to load configuration. - Class: java.net.PlainSocketImpl
- Linux下一个C(编程入门.h档,.c档,而路多文件的调用)
- js页码生成库,一个适合前后端分离的页码生成器
- js禁止浏览器后退,防止重复支付
- 【2017-03-09】SQL Server 数据库基础、四种约束
- 浅谈!SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
- 【原创】大叔问题定位分享(32)mysql故障恢复
- Spring4学习笔记一:环境搭建与插件安装、基本概念理解
- C# 解析excel时,字段内有内容,却读取不到的解决方法
- 机器学习入门-DBSCAN聚类算法
- collections系列之OrderedDict【有序字典】与DefaultDict【默认字典】
- Nginx安装SSL安全证书
- Git 个人笔记
- 深度学习研究组Deep Learning Research Groups
- 2.4 自己编写一个vivi驱动程序
- SQL简明教程系列15 创建索引