python序列类型-Python序列类型
Python序列类型
序列:字符、列表、元组
所有序列都支持迭代
序列表示索引为非负整数的有序对象集合
字符和元组属于不可变序列,列表可变
1)字符
字符串字面量:把文本放入单引号、双引号或三引号中;
' '' '''
>>> str1 = ' hello, fanison '
>>> type(str1)
str
如果要使用unicode编码,则在字符之前使用字符u进行标识
>>> str2 = u'你好,fanison'
>>> type(str2)
unicode
文档字串:模块、类或函数的第一条语句是一个字符的话,该 字符串就成为文档字符串,可以使用__doc__属性引用;
例:
>>> def printName():
"the function is print hello"
print 'hello'
>>> printName.__doc__
运算符:
索引运算符 s[i] 返回一个序列的元素i
切片运算符 s[i:j] 返回一个切片
扩展切片运算符 s[i:j:stride]
例:
>>> str3 = 'hello,fanison'
>>> str2[0:]
'hello,fanison' 返回所有元素
>>> str2[0:7]
'hello,f' 返回索引7之前的所有元素
>>> str2[0:7:2]
'hlof' 返回从索引0到6内步径为2的元素,即隔一个取一个
>>> str2[7:0:-2]
'a,le' 从索引7处倒着隔一个取一个取到索引1处
>>> str2[-4:-1]
'iso' 从索引-4处取到-2处
>>> str2[-4::-1]
'inaf,olleh' 从-4处到开始处倒着取
注意:
步径为正表示 正着取,索引从小到大 i < j
步径为负表示 倒着取,索引从大到小 i > j
支持运算:
索引、切片、min()、max()、len()等
len(s) s中的元素个数
min(s) s的最小值
max(s) s的最大值
支持方法:
S.index(sub [,start [,end]]) 找到指定字符串sub首次出现的位置
S.upper() 将一个字符串转换为大写形式
S.lower() 将一个字符串转化为小写形式
S.join(t) 使用s作为分隔符连接序列t中的字符串
>>> l1 = list(str1)
>>> l1
['h', 'e', 'l', 'l', 'o', ',', 'f', 'a', 'n', 'i', 's', 'o', 'n']
>>> ''.join(l1)
'hello,fanison' 使用空字符作为分隔符连接列表l1
S.replace(old, new[, count]) 替换一个字符串
>>> str1.replace('fan','FAN')
'hello,FANison'
注意:
使用 help()获取其帮助
>>> help(str.join)
2)列表
列表:容器类型
任意对象的有序集合,通过索引访问其中的元素,可变对象,长度可变,异构,任意嵌套
支持在原处修改
修改指定的索引元素,修改指定的分片,删除语句,内置方法
>>> list1 = [ 1,2,3,'x','n' ]
>>> list1[1]=56
>>> print list1
[1, 56, 3, 'x', 'n']
>>> list1[1:3]=[] 会删除索引1到索引3之前的元素
>>> print list1
[1, 'x', 'n']
>>> del(list1[1]) 使用del函数删除list索引为1的元素
>>> print list1
[1, 'n']
注意:
因为支持原处修改,不会改变内存位置,可使用 id() 查看其位置变化
内置方法:
L.count(value) 计算value值出现的次数
L.append(object) 将一个新元素追加到L末端
L.extend(iterable) 增加合并列表(第二个列表内容会以单个元素追加至末端)
>>> l1 = [ 1,2,3 ]
>>> l2 = [ 'x','y','z']
>>> l1.append(l2)
>>> l1
[1, 2, 3, ['x', 'y', 'z']] 使用append方法会以其原有存在形式追加
>>> l1 = [ 1,2,3 ]
>>> l1.extend(l2)
>>> l1
[1, 2, 3, 'x', 'y', 'z'] 注意两种增加的区别
L.pop([index]) 返回元素index并从列表中移除它,如果省略则返回并移除列表最后一个元素
L.remove(key) 移除值为key的元素
>>> l1 = [ 'x',2,'abc',16,75 ]
>>> l1.pop(2) pop方法是按索引移除
'abc'
>>> l1
['x', 2, 16, 75]
>>> l1.remove(16) remove方法是按值移除
>>> l1
['x', 2, 75]
L.index(value) 指定值首次出现的位置
L.insert(index, object) 在索引index处插入值
>>> l1.insert(1,'abc')
>>> l1
['x', 'abc', 2, 75]
L.sort() 排序
L.reverse() 逆序
>>> l1.sort()
[2, 75, 'abc', 'x']
>>> l1.reverse()
['x', 'abc', 75, 2]
l1 + l2: 合并两个列表,返回一个新的列表;不会修改原列表;
>>> l1 = [ 1,2,3]
>>> l2 = [ 'x','y','z']
>>> l1 + l2
[1, 2, 3, 'x', 'y', 'z']
l1 * N: 把l1重复N次,返回一个新列表;
>>> l1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3] 使用id()查看是否生成新列表
成员关系判断字符:
in 用法: item in container
not in item not in container
>>> l1 = [ 'x','y',3 ]
>>> 'y' in l1
True
>>> 'x' not in l1
False
列表解析:[]
列表复制方式:
浅复制:两者指向同一内存对象
>>> l1 = [ 1,2,3,4 ]
>>> l2 = l1
>>> id(l1) == id(l1)
True 可以看出两者内存地址相同
>>> l1.append('x')
>>> print l1
[ 1,2,3,4,'x' ]
>>> print l2
[ 1,2,3,4,'x' ]
深复制:两者指向不同内存对象
1)导入copy模块,使用deepcoop方法
>>> import copy
>>> l3 = copy.deepcopy(l1)
>>> id(l3) == id(l1)
False 地址不同
2)复制列表的所有元素,生成一个新列表
>>> l4 = l1[:]
>>> print l4
[ 1,2,3,4,'x' ]
>>> l1.append(6)
>>> print l1
[ 1,2,3,4,'x',6 ] l1改变
>>> print l4
[ 1,2,3,4,'x' ] l4不变
3)元组
表达式符号:()
容器类型
任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定,异构,嵌套
常见操作:
()
>>> t1 = ( 1,2,3,'xyz','abc')
>>> type(t1)
tuple
>>> len(t1)
5
>>> t2 = () 定义一个空元组
>>> t3 = ( , )
SyntaxError: invalid syntax 报错:使用逗号分隔的条件是最少要有一个元素
(1,)
>>> t1[:]
( 1,2,3,'xyz','abc' )
>>> t1[1:]
(2, 3, 'xyz', 'abc')
(1,2)
>>> t1[1:4]
(2, 3, 'xyz')
>>> t4 = 'x',1,'yz',45,[2,4,6] 注意!!!这样也可以生成元组
>>> t4
('x', 1, 'yz', 45, [2, 4, 6])
t1 + t4: 合并两个元组,返回一个新的元组;不会修改原元组;
>>> t1 + t4
(1, 2, 3, 'xyz', 'abc', 'x', 1, 'yz', 45, [2, 4, 6])
t1 * N: 把l1重复N次,返回一个新元组;
>>> t1 * 3
(1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc', 1, 2, 3, 'xyz', 'abc')
成员关系判断
in
not in
注意:
虽然元组本身不可变,但如果元组内嵌套了可变类型的元素,那么此类元素的修改不会返回新元组;
例:
>>> t4 = ('x', 1, 'yz', 45, [2, 4, 6])
>>> id(t4)
44058448
>>> t4[4]
[2, 4, 6]
>>> t4[4].pop() 弹出列表内一个元素
6
>>> print t4[4]
[2, 4]
>>> print t4
('x', 1, 'yz', 45, [2, 4])
>>> id(t4)
44058448 由此可见,对元组内列表内的修改也会使元组发生改变,没有返回新元组
4)序列操作总结
python序列类型-Python序列类型相关推荐
- Python组合数据类型之序列类型
单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 序列 ...
- python序列类型-python学习—序列类型、列表、元组
序列类型 序列类型的数据:数据内部的元素是有顺序的(有下标) 序列类型的数据:字符串类型.列表类型.元组类型 1.可以通过下标取值 s = "python" li = [" ...
- python序列类型-Python(第八课,序列类型)
引言: 我们之前学过整数,浮点数,字符串,今天带来的更具有包容性. 今天带来的是高级数据类型,包括列表,元组,集合和字典.根据他们特性不同,可以分为序列类型,集合类型,键值类型. 一,序列类型 1.1 ...
- python序列类型-什么是序列,Python序列详解(包括序列类型和常用操作)
所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们. 为了更形象的认识序列,可以将它看做是一家旅店,那么店中的每个房间就如同序列存储数 ...
- python序列类型-python序列类型种类详解
python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...
- python序列类型-Python内置的序列类型
内置序列类型概览 按照可否存储不同数据类型来分,可以分为容序列和扁平序列. 容器序列 list, tuple, collections.deque 这些序列类型可以容纳不同类型的数据. 扁平序列 st ...
- python编程序列类型_python序列类型种类详解
python序列类型包括哪三种 python序列类型包括:列表.元组.字典 列表:有序可变序列 创建:userlist = [1,2,3,4,5,6] 修改:userlist[5] = 999 添加: ...
- python的六个类型_介绍Python中6个序列的内置类型
原标题:介绍Python中6个序列的内置类型 1.Python中6个序列的内置类型分别是什么? Python包含6中内建的序列,即列表.元组.字符串.Unicode字符串.buffer对象和 xran ...
- python数值类型和序列类型_Python基础(一):数值类型,序列类型
Python的数值类型 在python中,数字并不是一个真正的对象类型,而是一组类似类型的分类.这些主要包括整数,浮点数,布尔类型和复数.这些是相对来说比较常用的,复数一般都用在比较精密的科学计算中, ...
- Python序列(包括序列类型和常用操作)
所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们. 为了更形象的认识序列,可以将它看做是一家旅店,那么店中的每个房间就如同序列存储数 ...
最新文章
- SQL2005客户端连接到SQL2000服务器存在的问题
- python读取本地文件-python解析本地HTML文件
- 最优化算法python实现篇(4)——无约束多维极值(梯度下降法)
- C# 虚方法与抽象方法区别
- 根据 HTML 规范,以下代码中,外层容器 .outer 的宽高分别是:
- 栈/队列 互相模拟实现
- PHP 获取访问来源
- matlab 矢量化编程(二)—— 使用 meshgrid
- Futter基础第5篇: 实现列表、动态列表【ListView、ListView.builder】
- linux clone命令,【linux命令】git clone 用法说明
- Abaqus单元选择
- linux mint怎么切换输入法,Linux Mint安装ibus五笔和拼音输入法简明教程(示例代码)...
- sox处理mp3_sox 转码 amr转MP3
- c语言srand函数
- 月饼事件技术还原 - 用js+Chorme来做抢电商的东西吧
- 为什么99%的价值投资者最后都会死去?
- 猫眼上市后的第一份财报:不安与野心同在
- 一起来看流星雨-------张翰
- scp 解除链接问题的两个解决方案
- 知云文献翻译打不开_有了这个英文文献翻译助手,SCI论文阅读不用再复制粘贴...
热门文章
- Spring资源加载器抽象和缺省实现 -- ResourceLoader + DefaultResourceLoader(摘)
- 洛谷.4252.[NOI2006]聪明的导游(提答 直径 随机化)
- JMS调用IBM MQ监听模式
- 每天OnLineJudge 之 “杨辉三角 ”
- Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群
- map获取数字与int比较
- Unity之Update与FixedUpdate区别
- ASP.NET环境下配置FCKEditor并上传图片及其它文件
- 在Servlet中获取Spring注解的bean
- python 迭代器