zoukankan      html  css  js  c++  java
  • 列表的方法

      append()方法:向列表的末尾添加一个元素。在原值上进行修改,修改结果影响原值。

    >>> lst
    [1, 2, 3, 'c++', 'java', 'python']
    >>> lst.append('web')
    >>> lst
    [1, 2, 3, 'c++', 'java', 'python', 'web'] 

      extend()方法:从一个可迭代对象中获取元素,将它们追加到已知列表中,达到扩充列表的目的,比如可将一个列表合并到另一个列表中,也可将一个字符串追加到一个列表中。需注意的是extend()方法的参数必须是一个可迭代的对象。

    >>> lst
    [1, 2, 3, 'c++', 'java', 'python', 'web']
    >>> lst2 = [6, 9, 'c#']
    >>> lst.extend(lst2)      # 将列表lst2追加到列表lst中
    >>> lst    # 列表lst被修改
    [1, 2, 3, 'c++', 'java', 'python', 'web', 6, 9, 'c#']
    >>> lst2    # 列表lst2不变
    [6, 9, 'c#']
    >>> s = 'ABC'
    >>> lst.extend(s)     # 将字符串s追加到列表lst中
    >>> lst
    [1, 2, 3, 'c++', 'java', 'python', 'web', 6, 9, 'c#', 'A', 'B', 'C']
    >>> s
    'ABC'  

      extend()方法的参数必须是一个可迭代的对象,当其参数不是可迭代的对象时,则报错:

    >>> lst.extend(3)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'int' object is not iterable     # 报错:整型不可迭代

      count()方法:统计列表中某个元素的个数。

    >>> lst
    [1, 2, 3, 'c++', 'java', 'web', 'python', 3]
    >>> lst.count(3)
    2
    >>> lst.count('java')
    1
    >>> lst.count('c')
    0

      index()方法:检索列表中某个元素第一次出现的下标位置,若没有该元素,则报错。

    >>> lst
    [1, 2, 3, 'c++', 'java', 'web', 'python', 3]
    >>> lst.index('python')
    6
    >>> lst.index('QQ')    # 没有该元素,则报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: 'QQ' is not in list

      insert()方法:list.insert(i, x)是向列表中添加元素,append和extend方法只能将元素添加到列表的末尾,为insert方法可以将元素添加到列表的任意位置。即将元素x插入到列表索引i的前面。

    >>> lst
    [1, 2, 3, 'c++', 'java']
    >>> lst.insert(0, 9)    # 元素9插入到索引0的前面
    >>> lst
    [9, 1, 2, 3, 'c++', 'java']
    >>> lst.insert(5, 'python')    # 元素python插入到索引5的前面
    >>> lst
    [9, 1, 2, 3, 'c++', 'python', 'java']

      当i值超过了最大索引值时,则会自动将要插入的元素放到列表的尾部,即追加,相当于append。

    >>> lst.insert(len(lst), 'web')
    >>> lst
    [9, 1, 2, 3, 'c++', 'python', 'java', 'web']
    >>> lst.insert(99, 'web')
    >>> lst
    [9, 1, 2, 3, 'c++', 'python', 'java', 'web', 'web']

      remove()方法:删除列表中的一个指定的元素。list.remove(x)删除列表中的第一个元素x,若列表中没有元素x,则报错。

    >>> lst
    [9, 1, 2, 3, 'c++', 'python', 'java', 'web', 'web']
    >>> lst.remove(9)
    >>> lst
    [1, 2, 3, 'c++', 'python', 'java', 'web', 'web']
    >>> lst.remove('web')
    >>> lst
    [1, 2, 3, 'c++', 'python', 'java', 'web']
    >>> lst.remove('www')    # 列表中没有该元素,报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: list.remove(x): x not in list

      pop()方法:删除列表中指定索引的元素。list.pop(i) 删除列表中指定索引的元素,并返回被删除的元素i为元素的索引,若pop()方法参数为空,则默认删除最后一个元素并返回被删除的元素。若i值超出索引范围,则报错。

    >>> lst
    [1, 2, 3, 'c++', 'python', 'java', 'web']
    >>> lst.pop(1)
    2
    >>> lst
    [1, 3, 'c++', 'python', 'java', 'web']
    >>> lst.pop()    # 参数为空,默认删除最后一个元素
    'web'
    >>> lst
    [1, 3, 'c++', 'python', 'java']
    >>> lst.pop(9)    # 索引超出范围,报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: pop index out of range

      需要注意的是pop()方法会将被删除的元素返回。


       reverse()方法:将列表的元素顺序反过来。是原地反转,而不是另外生成一个新的列表。它没有返回值。

    >>> lst
    [1, 3, 'c++', 'python', 'java']
    >>> lst.reverse()
    >>> lst
    ['java', 'python', 'c++', 3, 1]

      reversed()函数:这是python的内建函数,不是列表的方法,它会返回一个与列表元素顺序相反的迭代对象,原列表不变。

    >>> lst
    ['java', 'python', 'c++', 3, 1]
    >>> lst2 = reversed(lst)
    >>> lst2
    <list_reverseiterator object at 0x7fcda7a8d5c0>
    >>> list(lst2)    # 使用list将迭代对象转化为列表显示
    [1, 3, 'c++', 'python', 'java']

      sort()方法:对列表中的元素进行排序。也是对列表进行原地修改,没有返回值。它可接收两个可选参数key和reverse。

    >>> li = [1, 4, 7, 3, 6, 2, 0, 8]
    >>> li.sort()
    >>> li
    [0, 1, 2, 3, 4, 6, 7, 8]

      默认从小到大进行排序,可设置参数reverse=True,实现从大到小的排序。

    >>> li = [1, 4, 7, 3, 6, 2, 0, 8]
    >>> li.sort(reverse=True)
    >>> li
    [8, 7, 6, 4, 3, 2, 1, 0]

      还可设置关键字参数,设置按照某个关键字进行排序。

    >>> lst.sort(key=len)    # 设置按长度进行排序
    >>> lst
    ['c', 'c++', 'web', 'java', 'python']

      sorted()函数:python的内建函数,可实现排序,并返回一个新的序列,原序列不变。将要排序的序列作为必选参数,并可接收两个可选参数key和reverse。

    >>> lst =  ['c', 'c++', 'python', 'java', 'web']
    >>> lst2 = sorted(lst)
    >>> lst2
    ['c', 'c++', 'java', 'python', 'web']
    >>> lst    # 原序列不变
    ['c', 'c++', 'python', 'java', 'web']

      默认从小到大进行排序,可设置参数reverse=True,实现从大到小的排序。

    >>> li = [1, 4, 7, 3, 6, 2, 0, 8]
    >>> li2 = sorted(li, reverse=True)
    >>> li2
    [8, 7, 6, 4, 3, 2, 1, 0]

      设置关键字参数,设置按照某个关键字进行排序。

    >>> lst
    ['c', 'c++', 'python', 'java', 'web']
    >>> lst =  ['c', 'c++', 'python', 'java', 'web']
    >>> lst2 = sorted(lst, key=len)    # 设置按长度进行排序
    >>> lst2
    ['c', 'c++', 'web', 'java', 'python']

      实际上,sorted()函数可对任何序列进行排序,但总是返回一个列表。

    >>> s = 'python'
    >>> s2 = sorted(s)    # 对字符串进行排序
    >>> s2
    ['h', 'n', 'o', 'p', 't', 'y']    # 总是返回一个列表

      clear()方法:就地清空列表中的内容。

    >>> lst
    ['p', 2, 3, 'y']
    >>> lst.clear()
    >>> lst
    []

     

      此方法类似于切片赋值语句lst[:] = []


      copy()方法:复制列表,产生一个元素完全相同的新列表。

    >>> lst = ['p', 2, 3, 'y']
    >>> lst2 = lst.copy()    # 返回一个元素完全相同的新列表
    >>> id(lst)
    140521257880264
    >>> id(lst2)
    140521225345288
    >>> lst3 = lst[:]    # 与copy类似返回一个元素完全相同的新列表
    >>> id(lst3)
    140521258442376
    >>> lst4 = lst    # 列表lst4实际上和列表lst是同一个列表
    >>> id(lst4)
    140521257880264
  • 相关阅读:
    wait waitpid
    达梦备份还原
    sigprocmask阻塞信号
    sigaction信号处理
    dd命令
    linux系统启动过程
    cpio建立、还原备份档
    configure详解
    Git入门基础教程
    一篇文章了解Github和Git教程
  • 原文地址:https://www.cnblogs.com/wgbo/p/9577145.html
Copyright © 2011-2022 走看看