zoukankan      html  css  js  c++  java
  • python 序列应用

    序列:成员有序排列,并且可以通过下标漂移量访问一个(直接指定索引)或者几个成员(切片操作)。包括字符串(普通字符串和unicode字符串)、列表和元组。其索引第一个元素从零向后递增(正索引),也可以从最后一个元素的-1索引向前递减(负索引)。   

    1、所有的标准类型操作符适用于序列(值比较操作符,对象身份比较,逻辑操作符)。

    2、序列类型的操作符:

    (1)成员关系操作符(in, not in):判断一个元素是否属于一个序列,返回值为True/False。

    (2)连接操作符(+):将一个序列与另一个相同类型的序列做连接。

    这个方法并不是最快最有效的,因为python要为每一个参加连接操作的字符串分配新的内存,包括新产生的字符串。对于字符串,推荐将子字符串放到一个列表或者可迭代对象中,调用join方法连接,节约内存。对于列表,推荐使用列表对象的extend()方法。

    (3)重复操作符(*):一个序列的多份拷贝,返回一个包含多份原对象拷贝的新对象。sequence*copies_int,注意copies_int必须为整型,不能为长整型。

    (4)切片操作符([],[:][::]):

    访问某一个数据元素:sequence[index]。(len()函数可获得序列的长度)

    例:print ('a','b','c')[1] (例子中没有先赋值直接访问一个序列的元素,当只对函数返回序列对象的某些元素感兴趣时非常有用)

    访问多个元素:sequence[starting_index:ending_index]。(注意不包括结束索引,并且如果没有提供或者用None作索引值,则从第一个元素开始或者到最后一个元素结束)。对于这种形式,起始索引和结束索引可以为超过字符串长度的索引。

    例:s[:-1] 从第一个元素到最后一个元素

        s[:0] 返回''

    扩展的步长索引:

    例:s[::-1] 可以看作翻转操作,'abcd'操作后为'dcba'

    例:s='abcde'

        for i in [None] + range(-1, -len(s),-1)

              print s[:i]

    (注意这里不能先用None生成列表,再用extend将range的输出加入列表,因为extend的输出为None)

    3、序列常用的内建函数:

    (1)类型转换:实际上没有进行真正的类型转换,是将参数传入对象的内容浅拷贝到新生成的对象中。浅拷贝是指只拷贝对象的索引,不是重新建立对象,在python中,对象建立后就不能更改其身份和类型

    str():用于对象的打印,对序列类型和其它类型都适用。

    unicode():功能与str()一样,只是输出为unicode编码。

    list():转换为列表;tuple():转换为元组。这两个函数常用于列表和元组的互换。很少用于string类型

    basestring():抽象工厂函数,是str和unicode的父类,不能被实例化和调用。

    (2)内建函数:

    参数只接收序列对象:len(seq),reversed(seq),sum(seq,init=0)。

    参数可接收序列对象和可迭代对象:enumerate(iter),sorted(iter,func=None,key=None,reverse=False),

    zip([it0,it1,...itN])

    可接收参数列表:max(iter,key=None)或者max(arg0,arg1,...,key=None)

                    min类同于max。

  • 相关阅读:
    限制CPU个数
    delphi 不阻塞提示对话框
    快捷打开vnc 某个连接
    delphi ShellExecute 传递多个参数
    JS对JSON的操作总结 (转)
    Windows Server 2008 IIS下部署网站出现的问题
    SqlParameter序列化的问题
    求解,工作流点通过时,弹出窗口让用户录入审核意见
    oracle调度
    c# 多态
  • 原文地址:https://www.cnblogs.com/zhangfei/p/3114246.html
Copyright © 2011-2022 走看看