python2 - 列表
列表
a = [1,2,3,4,5,6,7]
a[0:4:1]//正向索引
a[-1:-2:-1]//反向索引
列表添加
a = [1, 2]
b = [3, 4]
+:a + b//把a和b连接,重新获得一个列表
extend:a.extend(b)//把a和b连接,并把值赋给a
append:a.append(5)//插入一个元素
insert:a.insert(1, 3)//在指定位置插入一个元素
列表删除
del:del a[0]//删除索引元素
del a//删除列表对象a的引用,再输出a,会出现异常,a不存在
del a[:]//删除列表对象里的元素,再输出a,会显示[]
remove:b.remove(3)//删除指定元素
pop:a.pop()//删除最后一个元素,并返回它
: a.pop(0)//删除指定元素,并返回值
in和not in(包含)
列表推导式
[x for x in 列表]:[x for x in range(1,11)]
[x for x in 列表 if 条件]:[(x,y) for x in [1,2,3] for y in [1,2,4] if x != y]
range(10)和xrange(10)作用相同,但是range()是生成一个0到10的列表,
而xrange()是生成一个xrange的对象,比较节省内存。
列表排序
a = [33,11,22,10]
a.sort()//结果[10, 11, 22, 33]
a.reverse()//翻转[33, 22, 11, 10]
sort()和sorted()的区别
a = ['4581','9578','315']
a.sort()// 改变的是列表a本身
sorted(a)// a本身未改变,生成新的列表
a = ['4581','9578','315']
>>> a.sort(key=int)// 把字符串按照int类型排序
>>> a
['315', '4581', '9578']
>>> a = [('c',88),('a',99),('a',77)]
>>> a
[('c', 88), ('a', 99), ('a', 77)]
>>> sorted(a)
[('a', 77), ('a', 99), ('c', 88)]
>>> sorted(a,key=lambda x:x[1])
[('a', 77), ('c', 88), ('a', 99)]
// 姓名,分数,等级 ['Bob', 95.0, 'A']
>>> import operator
>>> a = [['Bob',95.00,'A'],['Alan',86.0,'C'],['Mandy',82.5,'A'],['Rob',86,'E']]
>>> a
[['Bob', 95.0, 'A'], ['Alan', 86.0, 'C'], ['Mandy', 82.5, 'A'], ['Rob', 86, 'E']]
>>> sorted(a, key=itemgetter(2, 1))// 先按照分数排序,再按照等级排序
[['Mandy', 82.5, 'A'], ['Bob', 95.0, 'A'], ['Alan', 86.0, 'C'], ['Rob', 86, 'E']]