Pyhon学习_04_字典、集合
字典、集合两种基本类型都是通过映射的方式访问。
字典
python中的字典和perl中的哈希是很相似的,包括其重要的几条属性:
1. 键值必须是唯一的
2. 键值必须是可哈希的,也就是键值不能够是可变类型,比如列表、字典等
3. 键是无序的,根据sorted()方法可以对其进行排序
字典的创建:
可以通过以下几种方式:
dict1 = {’name’:’Lyon’,’age’:23,’gender’:’male'}
dict2 = dict(([’name’:’Lyon’,’age’:23,’gender’:’male’]))
dict3 = {}.fromkeys((’name’,’age’,’gender’),default=None)
第三种方式可以设置一个初始值,使所有的键的值都是该值,如果不设置则为None。
字典的访问:
通过dict1[‘key’]的方式访问特定键的值,也可以通过内建的方法 keys(),values(),items()来分别访问字典中的所有键、所有值、所有键值对,并通过迭代的方式逐一访问每个元素:
for key in dict1.keys():
print ‘key=%s, value=%s’ % (key,dict1[key])
在Python2.2之后,序列对象(如字典和文件)都可以通过迭代器来访问,而不需要再执行keys()方法:
for key in dict1:
print ‘key=%s, value=%s’ % (key,dict1[key])
通过in 和 not in操作符,可以判断字典中是否有某个键
字典的维护
可以对一个已存在或者未存在的键更改其值,如果该键已存在,则会修改原键对应值,若不存在,则添加新的键值对;
通过del 操作符,可以删除某一个条目,或者整个字典;也可以通过{}.clear()方法删除所有条目,{}.pop()方法删除并返回某一个条目;
集合
Python引入集合作为基本数据类型,集合分为set()、frozenset()两种,分别为可变和不可变类型,只能通过这两个工厂函数来创建集合。可以通过包含所有元素的列表来创建一个集合,也可以通过字符串创建,此时集合的元素将是每个字符,当然,每个元素都是唯一的,在创建过程中会去掉冗余元素:
set1 = set(['A','BB','A'])
print set1
set2 = set('aaabbbccc')
print set2
结果为:
set(['A', 'BB'])
set(['a', 'c', 'b'])
通过in、not in操作符可以判断集合中是否有该成员,同时也可以通过 for i in set1的方式遍历集合。
add()方法可以添加一个元素到集合中
update()方法则将另一个集合合并到集合中,相当于 |= 的操作,
del()方法可以删除某个元素或者整个集合
其他的操作符见下图:

Pyhon学习_04_字典、集合的更多相关文章
- Python学习之字典集合篇
lambda表达式:起到一个函数速写的作用,允许在代码内嵌入一个函数的定义; filter()函数:1.用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表.2.接收两个参数,第一个为 ...
- python学习笔记整理——集合 set
python学习整理笔记--集合 set 集合的用途:成员测试和消除重复的条目,进行集合运算 注意:花括号或set()函数可以用于创建集合. 注意:若要创建一个空的集合你必须使用set(),不能用{} ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- 软件测试之loadrunner学习笔记-02集合点
loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...
- [推荐]PMO学习贴大集合
[推荐]PMO学习贴大集合 http://wenku.baidu.com/view/a9b19bd4240c844769eaeed9.html http://wenku.baidu.com/view/ ...
- C#中服务端接受前端JSON字符串转换成字典集合
我们是否可以把从前端接受的JSON字符串转换成字典集合呢? 比如从前端接收:{'size':'10', 'weight':'10kg'} 在服务端转换成:[{size:"10"}, ...
- python :列表 字典 集合 类 ----局部变量可以改全局变量
#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...
- Swift字典集合
字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...
随机推荐
- 如果nginx启动失败,错误解决
解决上面问题: /usr/sbin/groupadd -f www /usr/sbin/useradd -g www www 这方法常见出现时反向代理时,ssl的授权用户不存在的情况下出现的:.
- SQL图像查看器 —— SQL Image Viewer
有时候往数据库里面存储了一些图片,但是如果不写读取程序的话,就不知道存储的对不对. 或者查看SQL数据库里面二进制看不懂,这个看图片很直观的. 就需要SQL Image Viewer这么一个
- Qt---自定义界面之QStyle
最近想学习下Qt的自定义界面,因此花了点时间看了下QStyle,,,,结果很难受,这一块涉及到一大块GUI的具体实现方式,看得我很头疼.想看第一手资料并且英语功底不错的可以直接上qt文档,下面我会以易 ...
- webrtc视频数据render流程
- day2、Linux别名
Linux中修改配置别名 ####用到的命令: alias是用来查看系统中有什么别名 source 让配置生效 临时取消别名的方法 unalias 临时取消别名 \cp /mnt/test.txt / ...
- Sencha Cmd 6 和 Ext JS 6 指南文档(部分官方文档中文翻译)
近期组织了几个程序员网友,正在翻译一部分官方的Sencha Cmd 6 和 Ext JS 6 指南文档. 眼下还没翻译完,大家能够先看看 Sencha Cmd 6 和 Ext JS 6 指南文档 ( ...
- 利用qq设置个性化的域名邮箱
首先有域名.先去注冊先,国内有非常多域名交易平台.我是在易名中国网上注冊的一个域名,Lios.top,因为这个域名价值非常低.一年才 10元,价格非常实惠. 下一步就是去qq邮箱的设置里,找到账户,然 ...
- hdu 1885 Key Task(bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1885 再贴一个链接http://blog.csdn.net/u013081425/article/details ...
- gsp页面标签
gsp--Groovy Servers Pages <g:actionSubmit value=""/> 提交button <g:actionSubmit act ...
- Python源代码剖析笔记3-Python运行原理初探
Python源代码剖析笔记3-Python执行原理初探 本文简书地址:http://www.jianshu.com/p/03af86845c95 之前写了几篇源代码剖析笔记,然而慢慢觉得没有从一个宏观 ...