Python编程之序列操作实例详解


Posted in Python onJuly 22, 2017

本文实例讲述了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编程之序列操作实例详解

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python简单的函数定义和用法实例
May 07 Python
使用python实现省市三级菜单效果
Jan 20 Python
Python+MongoDB自增键值的简单实现
Nov 04 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
django写用户登录判定并跳转制定页面的实例
Aug 21 Python
python处理excel绘制雷达图
Oct 18 Python
Pygame的程序开始示例代码
May 07 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
python如何建立全零数组
Jul 19 Python
使用numpy nonzero 找出非0元素
May 14 Python
python内置模块之上下文管理contextlib
Jun 14 Python
Python实现登录接口的示例代码
Jul 21 #Python
centos6.4下python3.6.1安装教程
Jul 21 #Python
Python复数属性和方法运算操作示例
Jul 21 #Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 #Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 #Python
详解Golang 与python中的字符串反转
Jul 21 #Python
Python随机生成手机号、数字的方法详解
Jul 21 #Python
You might like
php cache类代码(php数据缓存类)
2010/04/15 PHP
php常用hash加密函数
2014/11/22 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
python搜索包的路径的实现方法
2019/07/19 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
python 求定积分和不定积分示例
2019/11/20 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
顶岗实习接收函
2014/01/09 职场文书
大学毕业自我评价
2014/02/02 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
国庆节新闻稿
2015/07/17 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android