python 列表list 的内部方法

来源:互联网 发布:librosa有c语言版本吗 编辑:程序博客网 时间:2024/06/06 07:27

python 列表list 的内部方法

>>> dir(list)['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

 关于内部方法 sort

  • 从python2.4开始,list.sort()和sorted()函数增加了key参数来指定一个函数,此函数将在每个元素比较前被调用。 例如通过key指定的函数来忽略字符串的大小写:
>>> a = "This is a test string from Andrew".split()>>> a['This', 'is', 'a', 'test', 'string', 'from', 'Andrew']>>> a.sort(key=str.lower)>>> a['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
  • key参数的值为一个函数,此函数只有一个参数且返回一个值用来进行比较。这个技术是快速的因为key指定的函数将准确地对每个元素调用。

  • 更广泛的使用情况是用复杂对象的某些值来对复杂对象的序列排序,例如:

>>> student_list = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]>>> student_list.sort(key=lambda student: student[2])>>> student_list[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]>>> 

list的内部方法

  1. append 方法在列表尾部添加一个元素

    append(…)
    L.append(object) -> None – append object to end

  2. extend 方法 有一个列表来扩展该列表

    extend(…)
    L.extend(iterable) -> None – extend list by appending elements from the iterable

  3. insert 方法, 有两个参数, 第一个参数是位置参数, 第二个参数是插入的元素

    insert(…)
    L.insert(index, object) – insert object before index

  4. remove 方法, 删除列表中的指定的元素, 无该元素时, 程序出错

    remove(…)
    L.remove(value) -> None – remove first occurrence of value.
    Raises ValueError if the value is not present.

  5. pop方法, 默认将列表最后一个元素弹出, 空列表调用时, 程序出错

    pop(…)
    L.pop([index]) -> item – remove and return item at index (default last).
    Raises IndexError if list is empty or index is out of range.

  6. clear 方法清空列表

    clear(…)
    L.clear() -> None – remove all items from L

  7. copy 方法拷贝列表, 返回拷贝出来的新列表

    copy(…)
    L.copy() -> list – a shallow copy of L

  8. count 方法 有一个参数, 计数列表中该参数的个数

    count(…)
    L.count(value) -> integer – return number of occurrences of value

  9. index 方法, 返回列表中某个元素的索引值, 可设置区间, 若无该元素, 程序出错

    index(…)
    L.index(value, [start, [stop]]) -> integer – return first index of value.
    Raises ValueError if the value is not present.

  10. reverse 方法, 将列表翻转

    reverse(…)
    L.reverse() – reverse *IN PLACE*

  11. sort 方法, 对列表中的元素排序, 默认是从小到大排序, 可以将参数 reverse设置为True,则是从大到小排序, 注, 排序的列表中的数据类型要一致

    sort(…)
    L.sort(key=None, reverse=False) -> None – stable sort *IN PLACE*