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)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...
随机推荐
- Undefined index: HTTP_RAW_POST_DATA的解决办法
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 替换为 $postStr = isset($GLOBALS['HTTP_RAW_POST_DA ...
- QT的radioButton组的使用
在使用Qt的radioButton控件时,会产生一个疑问,如何让你选择的那个radio得到一个数据,进行判断,网上的一些资料有些不全,容易出错. 所以你得做件事,给每个radioButton进行赋初值 ...
- springBoot数据库连接池常用配置
在配置文件中添加配置如下(我使用的是多数据源): spring.datasource.primary.url=jdbc\:mysql\://localhost\:3306/test?useUnicod ...
- Linux基础学习笔记以及常用命令
1.windows自带命令进入mysql所在磁盘 2.进入mysql安装目录的bin文件 D:\>cd D:\Program Files (x86)\mysql-5.5.25-winx64\ ...
- Linxu服务器上安装JDK小白教程
一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤 前提:需要卸载自己Linux上的jdk rpm -qa ...
- Django中多表查询思路
需求: 1.有一张文章表和一张评论表 2.两张表的关系是一对多 3.规则:若是有新评论,则将对应的文章置顶,若是有新文章则将新文章置顶. 思路: 在文章表中增加一个最后评论时间的字段.然后采用分组排序 ...
- Model中内部类meta详解
Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性. 以下对此作一总结: Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项 ...
- 美杂志初次取得答应走进google奥秘研讨所Google X
Google X作为google最奥秘的研讨部分.开发过google眼镜.无人驾驶轿车等多项创新项目.至今为止.Google X从未答应媒体进入採訪.但近日,据日本GIGAZINE站点报导,美国杂志& ...
- java宜立方商城项目
宜立方商城项目 链接: https://pan.baidu.com/s/1c1SokzI 密码: z5cy 网上买的,资源是拿来共享,而不是来牟利的 框架:spring 设计模式 ...
- CS:APP3e 深入理解计算机系统_3e C Programming Lab实验
queue.h: /* * Code for basic C skills diagnostic. * Developed for courses 15-213/18-213/15-513 by R. ...