• 序列的几个通用操作介绍

    序列的深入了解
    服务器君一共花费 32.303 ms 进行了 2 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    Sequence 是 Python 的一种内置类型(built-in type),内置类型就是构建在 Python Interpreter 里面的类型,几个基本的 Sequence Type 比如 list(表),tuple(定值表,或翻译为元组),range(范围)可以看作是 Python Interpreter 定义了这样三个 class。

    序列有着相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,而要想一次得到多个元素,我们可以使用切片,下表偏移量从0开始,总元素数减1结束。

    Python 在操作一组数据时,通常是用序列来表示这组信息。(序列也可以包含其他序列)

    • Python还有一种叫做容器的数据结构。容器是包含其他对象的任意对象。序列(如元组和列表)和映射(比如字典)就是两类主要的容器。序列的每个元素有自己的编号(元组可以作为字典的键名),而映射的每个元素则有一个自己的名字(键)。另外还有种容器类型既不是序列也不是映射,叫做集合。

    通用的序列操作

    所有序列类型的数据结构都可以进行某些特定的操作,如;索引 、分片 、加 、乘 和检查每个元素是否属于序列的成员(成员资格 )。序列类型的操作符如下:

    1. 索引

    序列的所有元素都有自己的编号,从0开始,通过编号访问即为索引。

    >>>indexing = 'python'
    >>>indexing[1]
    'y'
    >>>indexing[-1]
    'n'
    

    或者字符串直接索引

    >>>'python'[0]
    'p'
    

    2. 切片操作符([,]/[:]/[::]) / 分片

    使用索引是用来访问单个元素,而使用分片操作是用来访问一定范围内的元素。分片是通过冒号相隔的两个索引来实现。

    >>> sliceing = '<a href="http://www.nowamagic.net/">python</a>'
    >>> sliceing[9:33]
    'http://www.nowamagic.net'
    >>> 
    
    >>>num= [1,2,3,4,5,6]
    >>>num[3:6]
    [4, 5, 6]
    >>>num[-3:-1]
    [4, 5]
    >>>num[-3:]
    [4, 5, 6]
    >>>num[:]
    [1,2,3,4,5,6]
    

    分片有个隐式的设置:步长。上面的步长都为1。

    比如:

    >>>num= [1,2,3,4,5,6]
    >>>num[3:6:1] #这边是个隐藏的步长1
    [4, 5, 6]
    >>>num[3:6:2] #步长改为2
    [4, 6]
    

    3. 连接操作符(+) / 序列相加

    通过加号来进行序列的连接操作。

    有几个要注意的地方:

    • 类型必须相同;
    • 返回一个新序列;
    • 并不推荐(效率不高);
    • 与join()、extend()之间的比较;
    >>>[1,2]+[3,4]
    [1,2,3,4]
    >>>[1,2]+'python'
    TypeError: can only concatenate list (not "str") to list
    #报错了,相同类型的序列才能进行连接操作。
    

    4. 重复操作符 / 乘法

    用数字x乘以一个序列得到新的序列,新的序列为原来的序列重复x次。

    >>>[1] * 3
    [1, 1, 1]
    

    再比如:

    >>> str="abc"
    >>> str*4
    'abcabcabcabc'
    

    注意:

    • 执行copy,创建新序列;
    • 序列后面是1个*;
    • *后面必须是整型;

    该操作符返回一个新的包含多份原对象copy的对象。

    5. 成员资格 (检测元素是否属于序列的成员)

    要检查一个值是否在序列中,可以使用in运算符。返回的是布尔值。

    >>>per = 'python'
    >>>'py' in per
    True
    
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [软件工程与项目管理] 浏览器与CSS渲染技巧 2 个条目
  2. [移动开发] 从代码角度去认识HttpClient 2 个条目
  3. [C语言程序设计] C语言里的全局变量 2 个条目
  4. [运维管理] 路由器与交换机 4 个条目
  5. [移动开发] Android与SQLite数据库 7 个条目
  6. [计算机算法] TAOCP与算法 12 个条目
  7. [PHP程序设计] htaccess 设置技巧 6 个条目
  8. [PHP程序设计] PHP数组探索 4 个条目
  9. [Python程序设计] Django Web环境配置 2 个条目
  10. [Python程序设计] Django与表单 4 个条目
  11. [JavaScript程序设计] 关于HTTP Keep-Alive 6 个条目
  12. [移动开发] Activity 初步知识 2 个条目
窗口 -- [八点]