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)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. ...
随机推荐
- 打开和创建SqlCe(.sdf文件)
打开SqlCe的工具有些少,目前能看到Vs2010安装插件之后打开.sdf文件 [转载]https://weblogs.asp.net/scottgu/vs-2010-sp1-and-sql-ce 需 ...
- java线程池的创建使用
利用java的多线程编程可以大大的提高系统的并发运行效率,线程越多并发执行的任务就越多,但是并不意味着效率会一直提高,相反会得到适得其反的效果. java中的多线程编程一共有三种方法: 继承Threa ...
- 从开源项目看 Python 单元测试
我觉得以前在我开发程序的时候,除了文档,可能单元测试是另外一个让我希望别人都写,但是自己又一点都不想写的东西.但是,随着开发程序的增多,以及自己对 Bug 的修改的增多,我发现,UT 在很大程度上是对 ...
- Express4.x API (四):Router (译)
Express4.x API 译文 系列文章 Express4.x API (一):application (译) -- 进行 Express4.x API (二):request (译) -- 完成 ...
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
前面一直强调Python运用到网络爬虫方面很有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简介下Python是怎样爬去网络数据的,文章知识很easy ...
- 豌豆夹Redis解决方式Codis源代码剖析:Proxy代理
豌豆夹Redis解决方式Codis源代码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描写叙述: Codis is a proxy b ...
- 一起读源码之zookeeper(1) -- 启动分析
从本文开始,不定期分析一个开源项目源代码,起篇从大名鼎鼎的zookeeper开始. 为什么是zk,因为用到zk的场景实在太多了,大部分耳熟能详的分布式系统都有zookeeper的影子,比如hbase, ...
- AJAX扩展-POST传递参数并跳转页面
拓展的代码: 这段代码的原理是创建一个表单,所有args都创建一个隐藏的input,用post方法把这些参数传递过去 注意form表单一定要加载到页面中,即下面代码中标红的部分,不然参数是无法被传递的 ...
- NanUI文档 - 使用网页来设计整个窗口
NanUI文档目录 NanUI简介 开始使用NanUI 打包并使用内嵌式的HTML/CSS/JS资源 使用网页来设计整个窗口 如何实现C#与Javascript相互掉用(待更新...) 如何处理Nan ...
- 【java】TreeSet、Comparable、Comparator、内部类、匿名类
package com.tn.treeSet; public class Student { private String name; private int age; public Student( ...