zoukankan      html  css  js  c++  java
  • Python序列方法整理

    序列通用操作:

      1、判断数据是否存在与欲裂中:   x(元素)  in s(序列)         ||  x(元素) not in s(序列)

    >>> num=[1,2,3,4,'tom','jack','marry']
    >>> 'tom' in num
    True
    >>> 'marry' not in num
    False

      2、连接序列  : s1(序列)+s2(序列)

        

    >>> num1=[1,2,3,4]
    >>> num2=['tom','marry','jack']
    >>> num1+num2
    [1, 2, 3, 4, 'tom', 'marry', 'jack']
    

      3、重复序列元素:[num]*3

    >>> [3]*4
    [3, 3, 3, 3]
    >>> num1=[1,2,3,4]
    >>> num1*2
    [1, 2, 3, 4, 1, 2, 3, 4]

      4、通过下表获取元素:s[ i ]

    >>> num=['marry','jom','doudou','jiangjiang']
    >>> num[2]
    'doudou'
    >>> num[1]
    'jom'
    >>> num[-1]
    'jiangjiang' //角标为-1的是最后一个元素

      5、访问指定索引范围元素:s [ i : j ]                   //访问角标以 i 开始,j  结束的元素 (注意:包头不包尾,即不包括元素  s[j]  )

    >>> num=['marry','jom','doudou','jiangjiang',1,2,3]
    >>> num[3:7]
    ['jiangjiang', 1, 2, 3]   //此处即不包括元素num[7]元素
    

         

      6、按步长访问指定索引范围:s [ i : j : k ]          //访问角标以 i 开始,j  结束的元素,中间跳过  k -1  个元素

    >>> num=['marry','jom','doudou','jiangjiang',1,2,3]
    >>> num[3:7]
    ['jiangjiang', 1, 2, 3]
    >>> num[3:7:2]   //每获取一个元素,跳过2-1个元素
    ['jiangjiang', 2]
    >>> num[3:7:3]
    ['jiangjiang', 3]   //每获取一个元素,跳过3-1个元素

      7、获取序列的长度: len(s)

    >>> num=['marry','jom','doudou','jiangjiang',1,2,3]
    >>> len(num)
    7

      8、获取序列的最小或最大值 :max(s)  ||  min(s)

    >>> num=[33,44,55,66,111,33]
    >>> max(num)
    111
    >>> min(num)
    33
    >>> num2=['q','w','e','r','f','a']
    >>> max(num2)
    'w'
    >>> min(num2)
    'a'

      9、统计序列的总和:sum(s)

    >>> num1=[1,2,3,4,5,6]
    >>> sum(num1)
    21

      10、检索某一元素第一次出现的下标: s.index(x)      //s为序列,x为要查询元素

    >>> num=['marry','bob','marry','jack','tom','shark','eye']
    >>> num.index('marry')   //检索第一次出现的位置
    0
    >>> num.index('shark')
    5

      11、统计某一元素在序列中出现的次数: s.count(x)     //s为序列,x为要查询元素 

    >>> num=['marry','bob','marry','jack','tom','shark','eye']
    >>> num.count('marry')
    2
    >>> num.count('eye')
    1

    以上所有Python序列都支持。

    可变序列通用操作

      1、增加序列中的元素

        s.insert(n,obj)  //在角标为n的位置插入对象obj

    >>> num=['marry','bob','jack']
    >>> num.insert(2,'zhangsan')
    >>> num
    ['marry', 'bob', 'zhangsan', 'jack']
    >>> num.insert(2,['lisi','wangwu'])
    >>> num
    ['marry', 'bob', ['lisi', 'wangwu'], 'zhangsan', 'jack']

        s.append(obj)   //把括号中元素作为一个对象加入

    >>> num=['marry','bob','jack']
    >>> num.append([1,2,3])
    >>> num
    ['marry', 'bob', 'jack', [1, 2, 3]]
    >>> num.append('tiger')
    >>> num
    ['marry', 'bob', 'jack', [1, 2, 3], 'tiger']

        s.extend(obj)    //把obj这个对象中的元素加入s序列中

    >>> num=['marry','bob','jack']
    >>> num2=[1,2,3]
    >>> num.extend(num2)
    >>> num
    ['marry', 'bob', 'jack', 1, 2, 3]

      2、删除元素

        del  s [ i ]          //删除序列元素中角标为i的元素

    >>> num=['marry','bob','jack']
    >>> del num[0]
    >>> num
    ['bob', 'jack']
    >>> del num[-1]
    >>> num
    ['bob']

                  del  s[m:n:k]          //删除为角标 m到n的元素,包头不包尾,每删除一个元素跳过k-1个元素

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> del num[0:-1:2]
    >>> num
    ['bob', 'zhangsan', 'wangwu']

        s[m:n]=[]           //删除序列角标为m到n-1

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> num[2:5]=[]
    >>> num
    ['marry', 'bob', 'wangwu']

        s.pop(n)           //返回并删除角标为n的元素,不写角标默认删除并弹回最后一个元素。角标越界报异常

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> num.pop()
    'wangwu'
    >>> num
    ['marry', 'bob', 'jack', 'zhangsan', 'lisi']
    >>> num.pop(0)
    'marry'
    >>> num
    ['bob', 'jack', 'zhangsan', 'lisi']

        s.remove(obj)     //在序列中删除obj这个元素,若元素不存在,则抛异常

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> num.remove('marry')
    >>> num
    ['bob', 'jack', 'zhangsan', 'lisi', 'wangwu']
    >>> num.remove('liubei')   //序列中没有‘liubei’ ,抛异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: list.remove(x): x not in list

        s.clear()          //删除序列中的所有元素

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> num
    ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'wangwu']
    >>> num.clear()
    >>> num
    []

       3、修改序列元素

        s[i]=x             //序列中角标为i的元素赋值为x

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> num
    ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'wangwu']
    >>> num[-1]='liubei'
    >>> num
    ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'liubei']
    >>> num[-3]='guanyu'
    >>> num
    ['marry', 'bob', 'jack', 'guanyu', 'lisi', 'liubei']

        s[n:m]=t        //将s序列中角标从n到m-1 的元素替换成t序列的元素

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> num
    ['marry', 'bob', 'jack', 'zhangsan', 'lisi', 'wangwu']
    >>> num[1:3]=[11,12,13,14,15,16]
    >>> num
    ['marry', 11, 12, 13, 14, 15, 16, 'zhangsan', 'lisi', 'wangwu']
    >>> num[:]=['q','w','e','r','t','y','u','i']         //整体全部替换
    >>> num
    ['q', 'w', 'e', 'r', 't', 'y', 'u', 'i']

        s[n:m:k]=t       //将s序列中角标从n到m-1 的元素替换成t序列的元素,每替换一个元素跳过k-1个元素,切记t序列元素的个数必须和被替换的元素个数相等

    >>> num=['marry','bob','jack','zhangsan','lisi','wangwu']
    >>> num[2:5:2]=['hello','world']
    >>> num
    ['marry', 'bob', 'hello', 'zhangsan', 'world', 'wangwu']
    >>> num[2:5:2]=['hello','world','kkkkk']  //此时替换的序列多了一个元素,抛异常
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: attempt to assign sequence of size 3 to extended slice of size 2

      4、元素排序翻转

        s.reverse()    //元素内部顺序颠倒

    >>> num=[1,2,3,4,5,6,7,8]
    >>> num
    [1, 2, 3, 4, 5, 6, 7, 8]
    >>> num.reverse()
    >>> num
    [8, 7, 6, 5, 4, 3, 2, 1]
    >>> print(num.reverse())    //只在内部翻转,并不返回什么
    None

      5、赋值序列内部元素

        new=old.copy()   //讲old序列中的元素复制的new序列上

    >>> num=['kk','ff','jj','gg']
    >>> num1=num.copy()
    >>> num1
    ['kk', 'ff', 'jj', 'gg']
    >>> num1[2]=3
    >>> num1
    ['kk', 'ff', 3, 'gg']
    >>> num
    ['kk', 'ff', 'jj', 'gg']

        new=old[:]           //讲old序列中的元素复制的new序列上

    >>> num=['kk','ff','jj','gg']
    >>> num1=num[:]
    >>> num
    ['kk', 'ff', 'jj', 'gg']
    >>> num1
    ['kk', 'ff', 'jj', 'gg']
    >>> num1[2]='tom'
    >>> num1
    ['kk', 'ff', 'tom', 'gg']
    >>> num
    ['kk', 'ff', 'jj', 'gg']

        old=new      //此种方法复制元素和上面两种复制有很大的不同,old与new二者共享引用,其实质任然指向同一个内存地址,无论哪一个序列发生改变,另一个会发生相同改变。

    >>> num=['kk','ff','jj','gg']
    >>> num1=num
    >>> num1
    ['kk', 'ff', 'jj', 'gg']
    >>> num1[2]='hello'
    >>> num1
    ['kk', 'ff', 'hello', 'gg']
    >>> num
    ['kk', 'ff', 'hello', 'gg']

       7、排序

        s.sort()  //内部排序,无返回

    >>> num=[5,44,332,54,24,5325]
    >>> num.sort()
    >>> num
    [5, 24, 44, 54, 332, 5325]

        sorted(s)  //返回排序后的序列

    >>> num=[5,44,332,54,24,5325]
    >>> num2=sorted(num)
    >>> num2
    [5, 24, 44, 54, 332, 5325]

        

      

        

        

     ,

  • 相关阅读:
    bootstrap class sr-only 什么意思?
    PHP 中的文本截取分析之效率
    FastAdmin 升级后出现 is already in use
    FastAdmin 环境变量 env 配置
    Nginx 服务器伪静态配置不当造成 Access denied
    笔记:明确认识
    进程通信(socket)
    进程间通信(了解)
    c++ 继承,组合
    c++ 类初始化
  • 原文地址:https://www.cnblogs.com/fudou/p/7821589.html
Copyright © 2011-2022 走看看