字典、集合两种基本类型都是通过映射的方式访问。

字典

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_字典、集合的更多相关文章

  1. Python学习之字典集合篇

    lambda表达式:起到一个函数速写的作用,允许在代码内嵌入一个函数的定义; filter()函数:1.用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表.2.接收两个参数,第一个为 ...

  2. python学习笔记整理——集合 set

    python学习整理笔记--集合 set 集合的用途:成员测试和消除重复的条目,进行集合运算 注意:花括号或set()函数可以用于创建集合. 注意:若要创建一个空的集合你必须使用set(),不能用{} ...

  3. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  4. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  5. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

  6. [推荐]PMO学习贴大集合

    [推荐]PMO学习贴大集合 http://wenku.baidu.com/view/a9b19bd4240c844769eaeed9.html http://wenku.baidu.com/view/ ...

  7. C#中服务端接受前端JSON字符串转换成字典集合

    我们是否可以把从前端接受的JSON字符串转换成字典集合呢? 比如从前端接收:{'size':'10', 'weight':'10kg'} 在服务端转换成:[{size:"10"}, ...

  8. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

  9. Swift字典集合

    字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...

随机推荐

  1. 算法训练 最大的算式 DP

    算法训练 最大的算式 时间限制:1.0s   内存限制:256.0MB     问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果 ...

  2. 高质量PHP代码的50个实用技巧必备(下)

    26. 避免直接写SQL, 抽象之 不厌其烦的写了太多如下的语句: ? 1 2 <span style="color:#333333;font-family:''Helvetica, ...

  3. VSCode配置eslint

    在Vue.js项目中,使用的是eslint检查. 而在我写完代码后,cnpm run dev运行命令...然后悲剧了,一大堆报错!╮(╯▽╰)╭ 安装插件:Vetur:这是vscode上一个vue.j ...

  4. AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)

    上一步我们创建好CoreApi 接下来在框架中加入 Swagger  并发布  到 IIS (1)首先点击依赖项>管理Nuget包 (2)输入 Swashbuckle.aspnetCore  比 ...

  5. 浅谈 Integer 类

    在讲解 Integer 之前,我们先看下面这段代码: public static void main(String[] args) { Integer i = 10; Integer j = 10; ...

  6. 基于跳跃表的 ConcurrentSkipListMap 内部实现(Java 8)

    我们知道 HashMap 是一种键值对形式的数据存储容器,但是它有一个缺点是,元素内部无序.由于它内部根据键的 hash 值取模表容量来得到元素的存储位置,所以整体上说 HashMap 是无序的一种容 ...

  7. 剑指Offer面试题39(Java版):二叉树的深度

    题目:输入一棵二叉树的根节点,求该数的深度. 从根节点到叶结点依次进过的结点(含根,叶结点)形成树的一条路径,最长路径的长度为树的深度. 比如.例如以下图的二叉树的深度为4.由于它从根节点到叶结点的最 ...

  8. Order笔记-数据库创建

    过程: 1,为这个项目新建一个用户名(实例),专门用于这个项目 2,建表 问题: 列在此处不允许: 笔记: 建表设置默认值: alter table 表名 modify 字段名 default 默认值 ...

  9. 几条jQuery代码片段助力Web开发效率提升

    平滑滚动至页面顶部 以下是jQuery最为常见的一种实现效果:点击一条链接以平滑滚动至页面顶部.虽然没什么新鲜感可言,但每位开发者几乎都用得上. $("a[href='#top']" ...

  10. java注解(转并做修改)

    本文由 ImportNew - 人晓 翻译自 idlebrains.欢迎加入翻译小组.转载请见文末要求. 自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也 ...