zoukankan      html  css  js  c++  java
  • Python的6种内建序列之通用操作

    数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构。在Python中,最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号--即元素的位置,也称为索引。第一个元素索引是0,第二个则是1,一次类推。

    Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。

    通用序列操作:索引、分片、序列相加、乘法、成员资格、长度、最小值和最大值

    1. 索引

    序列中所有的元素都是有编号的--从0开始递增。可以通过编号分别对序列的元素进行访问。Python的序列也可以从右边开始索引,最右边的一个元素的索引为-1,想左开始递减。

    >>> greeting='Hello'  
    >>> greeting[2]  
    'l'  
    >>> greeting[-1]  
    'o'  
    >>> 'stringtesting'[3] #可以对任何一个字符串进行索引,该字符串的第三个索引为'i'字符  
    'i'  
    >>> fourth=raw_input('Year: ')[3] #可以对输入的字符串进行索引,这样对输入的字符串索引为3的感兴趣  
    Year: 2014  
    >>> fourth  
    '4'   
    

    2. 分片

    索引用来对单个元素进行访问,用分片可以对一定范围内的元素进行访问,分片通过冒号相隔的两个索引来实现。分片操作的实现需要提供两个索引作为边界,第一个索引的元素是包含在分片内的,第二个则不包含在分片内。

    >>> number=[1,2,3,4,5,6,7,8,9,10]  
    >>> number[2:4] #取索引为第二和第三的元素  
    [3, 4]  
    >>> number[-4:-1] #负数表明是从右开始计数  
    [7, 8, 9]  
    >>> number[-4:] #把第二个索引置空,表明包括到序列结尾的元素  
    [7, 8, 9, 10]  
    >>> number[:3] #同上,把第一个索引置空,表明包含序列开始的元素  
    [1, 2, 3]  
    >>> number[0:10:1] #默认在分片的时候,步长为1,这样指定步长为1,和默认的效果一样  
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
    >>> number[0:10:2] #这里指定步长为2,这样就会跳过某些序列元素  
    [1, 3, 5, 7, 9]  
    >>> number[10:0:-1] #步长也可以是负数,但是第一个索引一定要大于第二个索引  
    [10, 9, 8, 7, 6, 5, 4, 3, 2]  
    >>> number[10:0:-2]   
    [10, 8, 6, 4, 2]  
    

    对于一个正数步长,Python会从序列的头部开始向右提取元素,直到最后一个元素,而对于负数步长,则是从序列的尾部开始向左提取元素,直到第一个元素

    3. 序列相加

    >>> [1,2,3]+[4,5,6]  
    [1, 2, 3, 4, 5, 6]  
    >>> 'Hello '+'World!'  
    'Hello World!'  
    >>> [1,2,3]+'Hello'  
    Traceback (most recent call last):  
      File "<stdin>", line 1, in <module>  
    TypeError: can only concatenate list (not "str") to list  
    

    最后一个例子,试图列表和字符串进行相加,但是出错了,虽然他们都是序列,但是是不同数据类型,不能相加

    PS:遇到问题没人解答?需要Python学习资料?可以加点击下方链接自行获取
    note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

    4. 乘法

    用数字x剩以一个序列会生成新的序列,而在新的序列中,原来的序列将会被重复x次。

    >>> 'python'*4  
    'pythonpythonpythonpython'  
    >>> [None]*4 #None为Python的内建值,这里创建长度为4的元素空间,但是什么元素也不包含  
    [None, None, None, None]  
    

    5. 成员资格

    可以使用in运算符来检查一个值是否在序列中,如果在其中,就返回Ture,如果不在,就返回False。

    >>> permission='rw'  
    >>> 'r' in permission  
    True  
    >>> 'x' in permission  
    False  
    

    6. 长度、最小值和最大值

    内建函数len、min和max分别返回序列所包含的元素的数量,序列中的最小元素和序列中的最大元素。

    >>> number=[2,3,4,5,6,7,8,9,10]  
    >>> len(number)  
    9  
    >>> min(number)  
    2  
    >>> max(number)  
    10  
    >>> min(4,3,5) #函数的参数不用一定是序列,也可以是多个数字  
    3  
    
  • 相关阅读:
    poj 2485 Highways 最小生成树
    hdu 3415 Max Sum of MaxKsubsequence
    poj 3026 Borg Maze
    poj 2823 Sliding Window 单调队列
    poj 1258 AgriNet
    hdu 1045 Fire Net (二分图匹配)
    poj 1789 Truck History MST(最小生成树)
    fafu 1181 割点
    减肥瘦身健康秘方
    人生的问题
  • 原文地址:https://www.cnblogs.com/xxpythonxx/p/11963928.html
Copyright © 2011-2022 走看看