Return the number of times x appears in the list.
demo:
1 #-*-coding:utf-8-*-
2 L = [1,2,3] #创建 list
3 L2 = [4,5,6]4
5 printL6 L.append(6) #添加
7 printL8 L.extend(L2) #合并
9 printL10 L.insert(0,0) #插入
11 printL12 L.remove(6) #删除
13 printL14 L.pop() #删除
15 printL16 print L.index(2)#索引
17 print L.count(2)#计数
18 L.reverse() #倒序
19 print L
result:
[1, 2, 3]
[1, 2, 3, 6]
[1, 2, 3, 6, 4, 5, 6]
[0,1, 2, 3, 6, 4, 5, 6]
[0,1, 2, 3, 4, 5, 6]
[0,1, 2, 3, 4, 5]2
1
[5, 4, 3, 2, 1, 0]
list.sort(cmp=None, key=None, reverse=False)
Sort the items of the list in place (the arguments can be used for sort customization, see sorted() for their explanation).
1.对一个 list 进行排序。默认按照从小到大的顺序排序
1 L = [2,5,3,7,1]2 L.sort()3 printL4
5 ==>[1, 2, 3, 5, 7]6
7
8 L = ['a','j','g','b']9 L.sort()10 printL11
12 ==>['a', 'b', 'g', 'j']
2.reverse 是一个 bool 值. 默认为 False , 如果把它设置为 True, 那么这个 list 中的元素将会被按照相反的比较结果(倒序)排列.
# reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.
1 L = [2,5,3,7,1]2 L.sort(reverse =True)3 printL4
5 ==>[7, 5, 3, 2, 1]6
7
8 L = ['a','j','g','b']9 L.sort(reverse =True)10 printL11
12 ==>['j', 'g', 'b', 'a']
3.key 是一个函数 , 它指定了排序的关键字 , 通常是一个 lambda 表达式 或者 是一个指定的函数
#key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None (compare the elements directly).
1 #-*-coding:utf-8-*-
2 #创建一个包含 tuple 的 list 其中tuple 中的三个元素代表名字 , 身高 , 年龄
3 students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]4 printstudents5
6 ==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]7
8 students.sort(key = lambdastudent:student[0])9 printstudents10
11 ==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)]#按名字(首字母)排序
12
13 students.sort(key = lambda student:student[1])14 printstudents15
16 ==>[('Tom', 160, 12), ('John', 170, 15), ('Dave', 180, 10)]#按身高排序
17
18 students.sort(key = lambda student:student[2])19 printstudents20
21 ==>[('Dave', 180, 10), ('Tom', 160, 12), ('John', 170, 15)]#按年龄排序
4.cmp 是一个指定了两个参数的函数。它决定了排序的方法。
#cmp specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first #argument is considered smaller than, equal to, or larger than the second argument: cmp=lambda x,y: cmp(x.lower(), y.lower()). The default value is None.
1 #-*-coding:utf-8-*-
2 students = [('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]3 printstudents4
5 ==>[('John', 170, 15), ('Tom', 160, 12), ('Dave', 180, 10)]6
7 #指定 用第一个字母的大写(ascii码)和第二个字母的小写(ascii码)比较
8 students.sort(cmp=lambda x,y: cmp(x.upper(), y.lower()),key = lambdastudent:student[0])9 printstudents10
11 ==>[('Dave', 180, 10), ('Tom', 160, 12), ('John', 170, 15)]12
13 #指定 比较两个字母的小写的 ascii 码值
14 students.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()),key = lambdastudent:student[0])15 printstudents16
17 ==>[('Dave', 180, 10), ('John', 170, 15), ('Tom', 160, 12)]18
19 #cmp(x,y) 是python内建立函数,用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
cmp 可以让用户自定义大小关系。平时我们认为 1 < 2 , 认为 a < b。
现在我们可以自定义函数,通过自定义大小关系(例如 2 < a < 1 < b) 来对 list 进行指定规则的排序。
当我们在处理某些特殊问题时,这往往很有用。
如果以上的叙述有误。欢迎大家批评指正。