• 序列的索引与切片操作

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

    序列的两个主要特点是索引操作符和切片操作符。

    • 索引操作符让我们可以从序列中抓取一个特定项目;
    • 切片操作符让我们能够获取序列的一个切片,即一部分序列。

    下面举个简单的例子:

    #!/usr/bin/python
    # Filename: seq.py
    
    shoplist = ['apple', 'mango', 'carrot', 'banana']
    
    # Indexing or 'Subscription' operation
    print 'Item 0 is', shoplist[0]
    #Item 0 is apple
    print 'Item 1 is', shoplist[1]
    #Item 1 is mango
    print 'Item 2 is', shoplist[2]
    #Item 2 is carrot
    print 'Item 3 is', shoplist[3]
    #Item 3 is banana
    print 'Item -1 is', shoplist[-1]
    #Item -1 is banana
    print 'Item -2 is', shoplist[-2]
    #Item -2 is carrot
    
    # Slicing on a list
    print 'Item 1 to 3 is', shoplist[1:3]
    #Item 1 to 3 is ['mango', 'carrot']
    print 'Item 2 to end is', shoplist[2:]
    #Item 2 to end is ['carrot', 'banana']
    print 'Item 1 to -1 is', shoplist[1:-1]
    #Item 1 to -1 is ['mango', 'carrot']
    print 'Item start to end is', shoplist[:]
    #Item start to end is ['apple', 'mango', 'carrot', 'banana']
    
    # Slicing on a string
    name = 'swaroop'
    print 'characters 1 to 3 is', name[1:3]
    #characters 1 to 3 is wa
    print 'characters 2 to end is', name[2:]
    #characters 2 to end is aroop
    print 'characters 1 to -1 is', name[1:-1]
    #characters 1 to -1 is waroo
    print 'characters start to end is', name[:]
    #characters start to end is swaroop
    

    首先,我们来学习如何使用索引来取得序列中的单个项目。这也被称作是下标操作。每当你用方括号中的一个数来指定一个序列的时候,Python会为你抓取序列中对应位置的项目。记住,Python从0开始计数。因此,shoplist[0]抓取第一个项目,shoplist[3]抓取shoplist序列中的第四个元素。

    索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]抓取序列的倒数第二个项目。

    切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。注意这与你使用的索引操作符十分相似。记住数是可选的,而冒号是必须的。

    切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。注意,返回的序列从开始位置 开始 ,刚好在 结束 位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。

    这样,shoplist[1:3]返回从位置1开始,包括位置2,但是停止在位置3的一个序列切片,因此返回一个含有两个项目的切片。类似地,shoplist[:]返回整个序列的拷贝。

    你可以用负数做切片。负数用在从序列尾开始计算的位置。例如,shoplist[:-1]会返回除了最后一个项目外包含所有项目的序列切片。

    使用Python解释器交互地尝试不同切片指定组合,即在提示符下你能够马上看到结果。序列的神奇之处在于你可以用相同的方法访问元组、列表和字符串。

更多 推荐条目

Welcome to NowaMagic Academy!

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

本章最新发布
随机专题
  1. [软件工程与项目管理] 开始了解Git 5 个条目
  2. [Python程序设计] Tornado表单处理 3 个条目
  3. [PHP程序设计] PHP与Stream流 5 个条目
  4. [软件工程与项目管理] 呈现器的布局与绘制 11 个条目
  5. [运维管理] 路由器与交换机 4 个条目
  6. [Linux操作系统] 基本 Linux Shell 命令 2 个条目
  7. [C语言程序设计] C语言里的全局变量 2 个条目
  8. [PHP程序设计] CodeIgniter与PHP框架设计 5 个条目
  9. [移动开发] 从代码角度去认识HttpClient 2 个条目
  10. [PHP程序设计] 编程范式初探 3 个条目
  11. [智力开发与知识管理] 信息的类型与结构 9 个条目
  12. [Linux操作系统] CentOS上使用EPEL Repository 2 个条目
窗口 -- [博客]