首先先看看 list 都有那些方法:
在编译器中输入 dir(list):
如图:
输出了 list 的全部属性和方法
但是我们只需要它的方法:
使用过滤器吧,在编译器中输入
import re
list(filter(lambda item: re.match(“[^]+.*[^]+”, item), dir(list)))
如图:此时就是所有我们可以调用的方法了,
那么此时开始使用这些方法:
append,count,extend,index,insert,pop,remove,reverse,sort
append():
append 方法是在该列表的尾部插入一条数据,append(value)。
list1 = list()
list1.append(1)
list1.append(2)
print(list1)
输出的结果为:
[1,2]
count():
count 方法是统计该列表某个元素出现了几次,count(value)。
list2 = [1,2,3,4,1,1,3]
print(list2.count(1))
print(list2.count(3))
print(list2.count(4))
输出的结果为:
3
2
1
extend():
extend 方法是将列表2 的每个元素,插入到列表1 中,extend(list())。
list1 = [1,2]
list2 = [1,2,3,4,1,1,3]
list1.extend(list2)
print(list1)
输出的结果为:
[1, 2, 1, 2, 3, 4, 1, 1, 3]
与 append 的区别是,append 是将列表2 当作一个值插入到列表1 中。
list1 = [1,2]
list2 = [1,2,3,4,1,1,3]
list1.append(list2)
print(list1)
输出的结果为:
[1, 2, [1, 2, 3, 4, 1, 1, 3]]
index():
index 方法是获取某个元素在列表中的位置,index(value[,start[,stop]]),有 3个参数,第一个参数是元素,第二个参数是起始位置,第三个参数是结束位置,其中第二个第三个都是可选参数,可不填
list2 = [1,2,3,4,1,1,3]
print(list2.index(1))
print(list2.index(2))
print(list2.index(1,2))
print(list2.index(1,2,4))
输出的结果为:
0
1
4
Traceback (most recent call last):
print(list2.index(1, 2, 4))
ValueError: 1 is not in list
如果该列表中没有这个元素,那么会报错。
insert():
insert 方法是向列表指定位置插入数据,insert(index,value)。
list3 = [1, 2, 3, 4, 5, 6, 7, 8]
list3.insert(1, 3)
print(list3)
list3.insert(len(list3), 9)
print(list3)
输出的结果为:
[1, 3, 2, 3, 4, 5, 6, 7, 8]
[1, 3, 2, 3, 4, 5, 6, 7, 8, 9]
跟数组一样,我们可以通过元素的索引值(index)从列表获取单个元素,注意,列表的索引是从0开始的,如果是 insert(len(list),value) 这个Index的值>= len(list) 那么此时 insert() 的与 append() 一个效果。
pop():
pop 方法是在删除指定索引值的元素 pop(index);如果这个索引值不填,则默认删除最后一个元素,
list4 = [1, 2, 3, 4, 5]
list4.pop(2)
print(list4)
list4.pop()
print(list4)
输出的结果为:
[1, 2, 4, 5]
[1, 2, 4]
remove():
remove 方法是删除元素,remove(value),但是一个列表中如果有多个该元素,则只删除第一个
list5 = [1, 2, 3, 4, 4, 4, 5, 5]
list5.remove(4)
print(list5)
list5.remove(2)
print(list5)
输出的结果为:
[1, 2, 3, 4, 4, 5, 5]
[1, 3, 4, 4, 5, 5]
reverse():
reverse 方法是将列表中的元素位置逆转,比如 [1,2,3] 变为 [3,2,1]
list6 = [1, 2, 3, 4]
list6.reverse()
print(list6)
list7 = [2, 7, 1, 5]
list7.reverse()
print(list7)
输出的结果为:
[4, 3, 2, 1]
[5, 1, 7, 2]
sort():
sort 方法是将列表中的元素以指定规则排序,sort 方法一共有 3 个参数 sort([cmp[,key[,reverse]]]),第一个参数为比较函数,第二个参数为全局调用的函数,第三个参数为反转选择。
list8 = [124, 43, 19, 45, 34, 643, 21]
list8.sort()
print("正常排序")
print(list8)
list8 = [124, 43, 19, 45, 34, 643, 21]
list8.sort(lambda x, y: y - x)
print("使用函数反转")
print(list8)
list8 = [124, 43, 19, 45, 34, 643, 21]
list8.sort(key=lambda x: x)
print("使用key正常排序")
print(list8)
list8 = [124, 43, 19, 45, 34, 643, 21]
list8.sort(key=lambda x: -x)
print("使用key反转排序")
print(list8)
list8 = [124, 43, 19, 45, 34, 643, 21]
list8.sort(reverse=True)
print("使用反转控制反转排序")
print(list8)
list8 = [124, 43, 19, 45, 34, 643, 21]
list8.sort(lambda x, y: y - x, lambda x: -x)
print("使用cmp和key进行两次反转")
print(list8)
list8 = [124, 43, 19, 45, 34, 643, 21]
list8.sort(lambda x, y: y - x, lambda x: -x, True)
print("使用cmp、key和reverse进行三次反转")
print(list8)
输出的结果为:
正常排序
[19, 21, 34, 43, 45, 124, 643]
使用函数反转
[643, 124, 45, 43, 34, 21, 19]
使用key正常排序
[19, 21, 34, 43, 45, 124, 643]
使用key反转排序
[643, 124, 45, 43, 34, 21, 19]
使用反转控制反转排序
[643, 124, 45, 43, 34, 21, 19]
使用cmp和key进行两次反转
[19, 21, 34, 43, 45, 124, 643]
使用cmp、key和reverse进行三次反转
[643, 124, 45, 43, 34, 21, 19]
序列操作符:
序列操作符 | 作用 |
seq[ind] | 获得下标为 ind 的元素 |
seq[ind1:ind2] | 获得下标从 ind1 到 ind2 间的元素集合 |
seq * expr | 序列重复 expr 次 |
seq1 + seq2 | 连接序列 seq1 和 seq2 |
obj in seq | 判断 obj 元素是否包含在 seq 中 |
obj not in seq | 判断 obj 元素是否不包含在 seq 中 |
序列函数:
函数 | 含义 |
list(iter) | 把可迭代对象转换为列表 |
str(obj) | 把 obj 对象转换成字符串(对象的字符串表示法) |
unicode(obj) | 把对象转换成 Unicode 字符串(使用默认编码) |
basestring() | 抽象工厂函数,其作用仅仅是为 str 和 unicode 函数提供父类,所以不能被 实例化,也不能被调用 |
tuple(iter) | 把一个可迭代对象转换成一个元组对象 |
序列类型可用的内建函数:
enumerate(iter) | 接受一个可迭代对象作为参数,返回一个 enumerate 对象(同 时也是一个迭代器),该对象生成由 iter 每个元素的 index 值 和 item 值组成的元组 |
len(seq) | 返回 seq 的长度 |
max(iter,key=None) or max(arg0,arg1…,key=None) | 返回iter或(arg0,arg1,…)中的最大值,如果指定了key, 这个 key 必须是一个可以传给 sort()方法的,用于比较的回 调函数 |
min(iter, key=None) or min(arg0, arg1…. key=None) | 返回 iter 里面的最小值;或者返回(arg0,arg2,…)里面的最小值;如果指定了 key,这个 key 必须是一个可以传给 sort()方法的,用于比较的回调函数 |
reversed(seq) | 接受一个序列作为参数,返回一个以逆序访问的迭代器 |
sorted(iter, func=None, key=None, reverse=False) | 接受一个可迭代对象作为参数,返回一个有序的列表;可选参数 func,key 和 reverse 的含义跟 list.sort()内建函数的参数含义一 样 |
sum(seq, init=0) | 返 回 seq 和 可 选 参 数 init 的 总 和 , 其 效 果 等 同 于 reduce(operator.add,seq,init) |
zip([it0, it1,… itN]) | 返回一个列表,其第一个元素是 it0,it1,…这些元素的第 一个元素组成的一个元组,第二个…,类推 |