链表是 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()这个函数
其函数处理细节见下图:
以自定义关键字函数排序
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']