Python编程之序列操作实例详解
作者:坏蛋是我 发布时间:2023-05-26 16:08:03
标签:Python,序列
本文实例讲述了Python编程之序列操作。分享给大家供大家参考,具体如下:
#coding=utf8
'''''
序列类型有着相同的访问模式:它的每一个元素可以通过指定一个偏移量的方式得到。
可以通过切片操作一次获得多个元素。
序列的下标偏移量是从0开始到总元素数减一结束。
标准类型操作符一般都能试用与所有的序列类型。
序列类型操作符:
---------------------------------------------------------------------------
序列操作符 作用
---------------------------------------------------------------------------
seq[ind] 获得下标为ind的元素
seq[ind1:ind2] 获得下标从ind1到ind2间的元素集合
seq * expr 序列重复expr次
seq1+seq2 连接序列seq1和seq2
obj in seq 判断obj元素是否包含在seq中
obj not in seq 判断obj元素是否不包含在seq中
---------------------------------------------------------------------------
切片操作符在Python中的原型是:[start:stop:step]
即:[开始索引:结束索引:步长值]
开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
结束索引:切片操作符将取到该索引为止,不包含该索引的值。
步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0。
切片索引的语法比简单的单一元素索引灵活的多。开始和结束索引值可以超过字符串的长度。
函数原型:range(start, end, scan):
参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
end:计数到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
序列类型转换工厂函数:
-----------------------------------------------------------------------------------------------------------------------
函数 含义
-----------------------------------------------------------------------------------------------------------------------
list(iter) 把可迭代对象转换为列表
str(obj) 把obj对象转换成字符串(对象的字符串表示法)
unicode(obj) 把对象转换成Unicode字符串(使用默认编码)
basestring() 抽象工厂函数,是str和unicode的父类,不能实例化不能调用
tuple(iter) 把一个可迭代对象转换成一个元组对象
-----------------------------------------------------------------------------------------------------------------------
序列类型可用的内建函数:
-----------------------------------------------------------------------------------------------------------------------
函数名 功能
-----------------------------------------------------------------------------------------------------------------------
enumerate(iter) 接受可迭代对象作为参数,返回一个enumerate对象,该对象生成
由iter每个元素的index值和item值组成的元组。
len(seq) 返回seq的长度
max(iter,key=None) or
max(arg0,arg1....,key=None) 返回iter或(arg0,arg1,...)中的最大值,如果指定key,key必须是
一个可以传给sort()方法的,用于比较的回调函数
min(iter,key=None) or
min(arg0,arg1....,key=None) 返回iter或(arg0,arg1,...)中的最小值,如果指定key,key必须是
一个可以传给sort()方法的,用于比较的回调函数
reversed(seq) 接受一个序列作为参数,返回一个以逆序访问的迭代器
sorted(iter,func=None,
key=None,reverse=False) 接受一个可迭代对象作为参数,返回一个有序的列表;可选参数func,key
和reverse的含义跟list.sort()内建函数的参数含义一样。
sum(seq,init=0) 返回seq和可选参数init的总和,其效果等同于reduce(operator.add,seq,init)
zip([it0,it1,...itN]) 返回一个列表,其第一个元素是it0,it1,...这些元素的第一个元素组成一个元组,
第二个...类推
-----------------------------------------------------------------------------------------------------------------------
'''
class sequenceClass(object):
def __init__(self):
'''''定义个整数序列表'''
self.intSeq=[1,2,5,8,95,456,236,458,95,62,63,64,77]
'''''定义个浮点数序列表'''
self.floatSeq=[0.33,2.56,45.23,45.33,46.789,23.00]
'''''定义个字符串序列表'''
self.strSeq=["hello","double","floatNumer","ewang"]
#输出初始化序列内容
def outInitData(self):
print "初始化整数序列表:",self.intSeq
print "初始化浮点数序列表:",self.floatSeq
print "初始化字符串序列表:",self.strSeq
#使用序列类型操作符
def sequenceTypeOper(self):
#获取序列中第几个元素值,下表从0开始
print "整数列表第%d元素的值是%d " %(3,self.intSeq[2])
#获取序列中第几个到第几个的之间元素的集合(从左向右)
print "浮点列表%d--%d之间元素列表:%r" %(1,5,self.floatSeq[1:5])
#倒数%d---%d之间的数据集合(从右向左)
print "浮点列表%d--%d之间元素列表:%r" %(-1,-5,self.floatSeq[-5:-1])
#使用切片对序列逆序
print "输出逆序的字符串序列:",self.strSeq[::-1]
#使用切片获取奇数位数据列表
print "输出整数列表奇数数位元素列表:" ,self.intSeq[::2]
#使用切片获取偶数位数据列表
print "输出整数列表偶数位元素列表:",self.intSeq[1:-1:2]
#序列重复2次
print "字符串序列重复2次并输出:",self.strSeq*2
#连接整数序列和浮点数序列
print "连接整数序列和浮点数序列",self.intSeq+self.floatSeq
#判断某个元素会否包含在序列中
if 5 in self.intSeq:
print "输出序列intSeq:",self.intSeq
#判断某个元素不包含在序列中
if "home" not in self.strSeq:
print "输出序列strSeq:",self.strSeq
def sliceIndexUse(self):
#切片索引的开始和结束索引值可以超过序列的长度
print "输出strSeq序列:",self.intSeq[-100:100]
#使用range函数操作字符串
#每次都把位于最后一个字符删掉
#无法输出str这个字符串
ind=-1
strg=self.strSeq[2]
print "要操作的字符串(strg)是 :",strg
for ind in range(-1,-len(strg),-1):
print strg[:ind],
#使用None作为索引值,可以从第一个遍历到最后一个元素
s=self.strSeq[-1]
print "\n要操作的字符串(s)是 :",s
for i in [None]+range(-1,-len(s),-1):
print s[:i],
def useTypeConver(self):
iterObj="hello ewang"
inter=45454
print "\n使用类型转换函数前的iterObj类型 :",type(iterObj)
print "使用类型转换函数前的inter类型 :",type(inter)
#使用list类型转换函数
print "使用list转换函数后的变量类型:",type(list(iterObj))
#使用str把对象转换为字符串类型
print "使用str函数把变量inter转换为字符串类型:",type(str(inter))
#使用unicode函数转换为Unicode字符串
print "使用unicode函数把变量iterObj转换为Unicode类型:",type(str(iterObj))
#使用tuple函数转换为一个元组对象
print "使用tuple函数把变量iterObj转换为元组类型:",type(tuple(iterObj))
def useSequencBIF(self):
#调用enumerate内建函数
print "使用enumerate函数:",enumerate(self.strSeq)
#调用len函数
print "使用len函数:",len(self.strSeq)
#调用max求最大值
print "使用max函数求序列的最大值:",max(self.intSeq)
print "使用max函数求参数的最大值:",max(1,2,5,8,95,456)
#调用min求最小值
print "使用min函数求序列的最小值:",min(self.floatSeq)
print "使用min函数求参数的最小值:",min(0.33,2.56,45.23)
#调用reversed函数对序列进行逆序
print "使用reversed函数对序列intSeq逆序:",reversed(self.intSeq)
#调用sorted函数对序列进行排序
print "调用sorted函数对序列strSeq进行排序:",sorted(self.strSeq)
#调用sum对序列进行求和
print "调用sum函数对序列intSeq进行求和",sum(self.intSeq)
#调用zip返回一个元组列表
print "调用zip函数对list操作返回一个元组列表:",zip(self.strSeq,self.strSeq)
def run(self):
self.outInitData()
self.sequenceTypeOper()
self.sliceIndexUse()
self.useTypeConver()
self.useSequencBIF()
def test():
#创建一个对象实例
seq=sequenceClass()
seq.run()
if __name__=="__main__":
test()
运行结果:
希望本文所述对大家Python程序设计有所帮助。


猜你喜欢
- 一、前言其实,在开发过程中,虽然我们没有直接使用到描述符,但是它在底层却无时不刻地被使用到,例如以下这些:function、bound me
- 失效的书签们我们日常浏览网站的时候,时不时会遇到些新奇的东西( 你懂的.jpg ),于是我们就默默的点了个收藏或者加书签。然而当我们面对成百
- path.makeUrlAbsolute() 把相对URL转化为绝对URLjQuery.mobile.path.makeUrlAbsolut
- 解决Can't connect to MySQL server on 'localhost' (10048), 一般
- 页级的典型代表引擎为BDB。 表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。 行级的典型代表引擎为INNODB。 -
- 1.静态方法(staticmethod)静态方法:@staticmethod也是一个类方法,是可以直接类调用的。个人认为的使用场景是:只要要
- 目录楔子paramikoSSHClient 的使用connect:实现远程服务器的连接与认证set_missing_host_key_pol
- 这篇文章主要介绍了python装饰器使用实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,L
- 简单的设计思路利用pytest对一个接口进行各种场景测试并且断言验证配置文件独立开来(conf文件),实现不同环境下只需要改环境配置即可测试
- mysql按照某个时间段分组统计今天刚好是碰到一个报表需求,要求根据时段统计各工单的数量。这个就有点皮实了,以前都没搞过这玩意。于是研究了几
- Demo里的三种方法:方法1是两层div,兼容FF3.1a+, Safari 3+, Chrome, IE6/7方法2是两层div,除了IE
- 本文实例讲述了PHP使用星号隐藏用户名,手机和邮箱的实现方法。分享给大家供大家参考,具体如下:PHP使用星号替代用户名手机和邮箱这个在许多的
- 在python中调用fortran代码,要用到f2py这个程序。它的项目主页在此。现在该项目已经合并到numpy中了,先安装python再装
- 简介如何简单的使用python来实现将一部视频转换为字符画视频的效果。 其实,大家都知道视频就是一帧一帧的图片构成的。  
- 在家里windows环境下搞了一次见 python MySQLdb在windows环境下的快速安装、问题解决方式ht
- python中列表的常见操作列表元组的简单操作前面我们已经学过了关于len()函数、赋值运算符及身份运算符的使用,下面简单回顾一下这些在列表
- 今天的这篇文章呢,小编来介绍一下如何通过Python来创建各种形式的文件,这里包括了文本文件CSV文件Excel文件压缩文件XML文件JSO
- Web Forms 2.0 是一个很有意思的东东,是 HTML 5 的组成部分。它的目标是提升表单的使用性 (usability),基本上就
- 初级画心学Python,感觉你们的都好复杂,那我来个简单的,我是直接把心形看作是一个正方形+两个半圆:于是这就很简单了,十行代码解决:imp