首页 后端开发 Python教程 Python中关于序列操作的实例代码分享

Python中关于序列操作的实例代码分享

Jul 22, 2017 pm 04:39 PM
python 实例 操作

这篇文章主要介绍了Python编程之序列操作,结合实例形式分析了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中关于序列操作的实例代码分享的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP和Python:代码示例和比较 PHP和Python:代码示例和比较 Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

Python vs. JavaScript:社区,图书馆和资源 Python vs. JavaScript:社区,图书馆和资源 Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

CentOS上PyTorch的GPU支持情况如何 CentOS上PyTorch的GPU支持情况如何 Apr 14, 2025 pm 06:48 PM

在CentOS系统上启用PyTorchGPU加速,需要安装CUDA、cuDNN以及PyTorch的GPU版本。以下步骤将引导您完成这一过程:CUDA和cuDNN安装确定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA显卡支持的CUDA版本。例如,您的MX450显卡可能支持CUDA11.1或更高版本。下载并安装CUDAToolkit:访问NVIDIACUDAToolkit官网,根据您显卡支持的最高CUDA版本下载并安装相应的版本。安装cuDNN库:前

docker原理详解 docker原理详解 Apr 14, 2025 pm 11:57 PM

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

minio安装centos兼容性 minio安装centos兼容性 Apr 14, 2025 pm 05:45 PM

MinIO对象存储:CentOS系统下的高性能部署MinIO是一款基于Go语言开发的高性能、分布式对象存储系统,与AmazonS3兼容。它支持多种客户端语言,包括Java、Python、JavaScript和Go。本文将简要介绍MinIO在CentOS系统上的安装和兼容性。CentOS版本兼容性MinIO已在多个CentOS版本上得到验证,包括但不限于:CentOS7.9:提供完整的安装指南,涵盖集群配置、环境准备、配置文件设置、磁盘分区以及MinI

CentOS上PyTorch的分布式训练如何操作 CentOS上PyTorch的分布式训练如何操作 Apr 14, 2025 pm 06:36 PM

在CentOS系统上进行PyTorch分布式训练,需要按照以下步骤操作:PyTorch安装:前提是CentOS系统已安装Python和pip。根据您的CUDA版本,从PyTorch官网获取合适的安装命令。对于仅需CPU的训练,可以使用以下命令:pipinstalltorchtorchvisiontorchaudio如需GPU支持,请确保已安装对应版本的CUDA和cuDNN,并使用相应的PyTorch版本进行安装。分布式环境配置:分布式训练通常需要多台机器或单机多GPU。所

CentOS上如何更新PyTorch到最新版本 CentOS上如何更新PyTorch到最新版本 Apr 14, 2025 pm 06:15 PM

在CentOS上更新PyTorch到最新版本,可以按照以下步骤进行:方法一:使用pip升级pip:首先确保你的pip是最新版本,因为旧版本的pip可能无法正确安装最新版本的PyTorch。pipinstall--upgradepip卸载旧版本的PyTorch(如果已安装):pipuninstalltorchtorchvisiontorchaudio安装最新

CentOS上PyTorch版本怎么选 CentOS上PyTorch版本怎么选 Apr 14, 2025 pm 06:51 PM

在CentOS系统上安装PyTorch,需要仔细选择合适的版本,并考虑以下几个关键因素:一、系统环境兼容性:操作系统:建议使用CentOS7或更高版本。CUDA与cuDNN:PyTorch版本与CUDA版本密切相关。例如,PyTorch1.9.0需要CUDA11.1,而PyTorch2.0.1则需要CUDA11.3。cuDNN版本也必须与CUDA版本匹配。选择PyTorch版本前,务必确认已安装兼容的CUDA和cuDNN版本。Python版本:PyTorch官方支

See all articles