python基础篇之链表

 |   

链表是 Python 里面一个很重要的数据结构,也是非常常用的一个数据结构.

链表的表示

  • 初始化

    1colors = ['red', 'blue', 'green']
    
  • 扩展

    1# 选择链表fruits中包含字符'a',并全部转换成大写
    2fruits = ['apple', 'cherry', 'bannana', 'lemon']
    3# ['APPLE', 'BANNANA']
    4afruits = [ s.upper() for s in fruits if 'a' in s ]
    

list 常用方法

  • 添加元素

    1list.append(elem)
    
  • 在i位置添加元素 elem

    1list.insert(i,elem)
    
  • 将 list2 中的元素添加到 list 中

    1list.extend(list2)
    
  • 获取元素 elem 的索引号

    1list.index(elem)
    
  • 删除第一个出现的元素 elem

    1list.remove(elem)
    
  • 删除第 i 个元素

    1list.pop(i)
    
  • 给 list 排序

    1list.sort()
    
  • 颠倒 list

    1list.reverse()
    

链表排序

  • sorted 基本方法

    1a = [5, 1, 4, 3]
    2print sorted(a)   ## [1, 3, 4, 5]
    3print sorted(a, reverse=True)  ##[5, 4, 3, 1]
    4print a           ## [5, 1, 4, 3]
    
  • sorted 按关键字排序

    • 以字符串的长度排序

      1strs = ['ccc', 'aaaa', 'd', 'bb']
      2print sorted(strs, key=len)  ## ['d', 'bb', 'ccc', 'aaaa'] #len代表len()这个函数
      

      其函数处理细节见下图:

      sorted-key.png

    • 以自定义关键字函数排序

      1# 根据字符串最后一个字符来排序
      2strs = ['xc', 'zb', 'yd' ,'wa']
      3
      4# 定义一个函数,输入是一个字符串,返回最后一个字符
      5def MyFn(s):
      6    return s[-1]
      7
      8# 传递key=MyFn作为参数
      9print sorted(strs, key=MyFn)  ## ['wa', 'zb', 'xc', 'yd']
      

课后习题

技术茶话会
< 前一篇 后一篇 >