python---序列可使用的内建函数(BIFs)

时间:2021-03-10 18:34:02

python序列可使用的内建函数

  • enumerate(iter)

  接受一个可迭代对象为为参数,返回一个enumerate(遍历)对象。

  #!/usr/bin/env python #-_- coding: utf-8 -_-

  #enumerate(iter)函数返回由index(索引)和item值组成的元祖,元祖数量由iter可迭代对象的元素决定。

  def Enumerate(name): 

      for Index, Name in enumerate(name): 

      print("%d  %s" %(Index, Name))

  name = ['John', 'Jimmy', 'Tom', 'Kate']

  Enumerate(name)

  • len(seq) 返回seq的长度
  • max(iter)

    max(arg0,arg1, ... key=None)

  • min(iter)

    min(arg0,arg1, ... key=None)

  • reversed(seq)

    接受一个序列作为参数,返回一个以逆序访问的迭代器。

  • sorted(iter,func=None,key=None,reverse=False)

    接受一个可迭代对象作为参数,返回一个有序的列表;可选参数func,key 和reverse 的含义跟list.sort()内建函数的参数含义一样。

  >>> a = ['10', '23', '19', '35']

  >>> a.sort(key=int, reverse=True)

  >>> a

  ['35', '23', '19', '10']

  -----------------------

  key=lambda x:x[1] lambda作为参数传给key,x:x[1] 以第二个数值作为排序的值。

  >>> a = [('a', 97), ('c', 99), ('b', 98)]

  >>> a.sort(key=lambda x:x[1], reverse=True)

  >>> a

  [('c', 99), ('b', 98), ('a', 97)]

  -----------------------

  导入模块operator,使用方法itemgetter,以第2和3个数值来进行比对排序。

  >>> a = [(1,2,3), (3,4,5), (0,1,2)]

  >>> import operator

  >>> a.sort(key=operator.itemgetter(1,2))

  >>> a

  [(0, 1, 2), (1, 2, 3), (3, 4, 5)]

  • sum(seq, int=0)

    返回seq 和可选参数init 的总和, 其效果等同于reduce(operator.add,seq,init)

  • zip([it0, it1, ... itN])

    zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]                         

        Return a list of tuples, where each tuple contains the i-th element from each of the argument sequences.  The returned list is truncated in length to the length of the shortest argument sequence.