python的序列,映像和集合类型
来源:互联网 发布:类似于淘宝的购物软件 编辑:程序博客网 时间:2024/06/06 14:26
python提供了许多非常便利的类型,往往许多编程语言中需要几十行代码才能实现的功能,在python里面用一个类型就能轻松解决。
序列
在python中有这样一种类型,他们的成员有序排列,并且可以通过下标偏移量访问到他们的一个或几个成员,类似于C语言中的数组,这类python类型就统称为序列。
序列的一些基本操作
- 成员关系操作符(in,not in)可以用来判断元素是否属于某个序列,结果返回布尔值,是不是感觉很方便,如果换了在C语言中,需要判断一个元素是否存在数组中,就只能循环遍历
l = [1,2,3,4,5]2 in lTrue
- 连接操作符(+)能够将两个相同类型的序列做连接
L1 = [1,2,3,4,5]L2 = [6,7,8,9]L1+L2[1, 2, 3, 4, 5, 6, 7, 8, 9]
- 重复操作符(*),将一个序列复制多份
L1 = [1,2,3,4,5]L2 = L1*3L2[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
- 切片操作,按照你的意愿访问序列的多个元素([beg:end:step])其中beg是你想取的序列的起始下标,end是你要取到哪里为止,也就是终止下标,但end这个下标你是取不到的,step就是你取得时候移动的步长,即隔多少个取一个,总而言之就是在[beg,end)这个左开右闭的区间内隔step个取一个值。下面是一个简单实例,我要实现取出0到10之间的奇数。
L1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]L1[1:-1:2][1, 3, 5, 7, 9]
序列的分类
- 字符串,python中实际上有三种字串,str,unicode,basestring,其中str和unicode字符串都是抽象类basestring的子类,而抽象类是不能被实例化的,python中通过单引号,双引号,以及三引号来定义str字符串,如(’ hello world’),其中单引号和双引号的作用是相同的,在str字符串前加上一个字母u即为unicode字符串,如(u’hello world’)。
str = 'hello world'type(str)<type 'str'>uni = u'hello world'type(uni)<type 'unicode'>
- 列表,像字符串一样列表也是序列式的类型,可以通过下标或者切片的方式来访问元素,但字符串只能由字符组成,而且是不可变的(不能单独改变它的某个值),但列表是能够保留任意数量python对象的灵活的容器,可以修改,可以嵌套字符串,元组等其他类型。
str = '1234123412'id(str)63626288Lstr[2] = '9'Traceback (most recent call last): File "<input>", line 1, in <module>TypeError: 'str' object does not support item assignment
L1 = [0, 1, 2, 10, 4, 5, 6, 7, 8, 9, 10]id(L1)62143624LL1[2]=100L1[0, 1, 100, 10, 4, 5, 6, 7, 8, 9, 10]id(L1)62143624L
- 元组,实际上元组是与列表非常相近的一种容器类型,支持下标索引和切片操作,看上去的区别只有,元组是用圆括号而列表用的是方括号,但元组和列表相比有一个非常重要的区别,元组是一种不可变类型(这一点与字符串类似),元组中也可以嵌套字符串,列表等其他类型。
aTuble = (1,2,3,4,"abc",[1,2,3])print aTuble(1, 2, 3, 4, 'abc', [1, 2, 3])aTuble[1] = 9Traceback (most recent call last): File "<input>", line 1, in <module>TypeError: 'tuple' object does not support item assignment
映射类型:字典
字典是python中唯一的映射类型,它包含哈希值(键,key)和指向的对象(值,value),通过键”映射“到值,可以把本来毫无关系的两个对象建立起联系,它是一个可变的容器类型,能存储任意个python对象,与序列不同,字典是无序的,它通过键对值进行访问,而且具有很好的性能,用键查询非常快。
dict1 = {"name":"xxx","id":"123456789"}dict1["name"]'xxx'dict1["id"]'123456789'
集合类型
没错,这里的集合就是数学中所谓的集合,它满足无序性、确定性、互异性,支持求交集,并集,差集等运算,十分方便。集合有两种不同类型,可变集合(set)和不可变集合(frozenset),见名知意,可变集合,即可以添加和删除元素,而不可变的则不能进行此类操作。
s1 = set([1,2,3,4,5])s2 = set([2,3,8,7,9])s1&s2set([2, 3])s1|s2set([1, 2, 3, 4, 5, 7, 8, 9])
阅读全文
1 0
- python的序列,映像和集合类型
- python映像和集合类型
- Python:映像和集合类型
- Python--映像和集合类型(字典)
- Python核心编程----映像和集合类型
- 映像和集合类型
- 映像和集合类型
- Python核心编程(第七章)--映像和集合类型
- 《Python核心编程》第7章 映像和集合类型 练习
- python核心编程(第二版)参考答案(自制)--第七章·映像和集合类型
- python核心编程五——映像和集合
- Python序列类型的extend和+的区别
- Python序列类型的extend和+的区别
- [Language]Python映像与集合--字典
- python学习05-映射和集合类型
- Hibernate入门15 - Component的集合映像
- Hibernate入门15 - Component的集合映像
- python序列集合,备着
- 设计模式之装饰模式
- Python编程从入门到实践:习题6-4~6-6
- RocketMQ最佳实践(四)可视化管理控制台rocketmq-console-ng
- DSS 代码分析【点播请求】
- elasticsearc-内部过滤器执行流程
- python的序列,映像和集合类型
- 基本数据类型
- Eclipse Java Build Path详解
- 69个经典Spring面试题和答案
- ora -12560: TNS: 协议适配器错误
- 个性化推荐系统(二)---构建推荐引擎
- 输出一个整数的每一位。
- 吴恩达深度学习课程笔记之神经网络基础
- 高级bash脚本编程(1)