继上次1.8
二、列表
定义:能够存入数字、字符等元素的序列,其中的值是可以更改的。
用法:1、更新列表(基本操作)
1、元素赋值
定义:将数字或字符直接存入列表中是最简单的改变方式。
用法:1、数字;>>>a=[1,2,3];>>>a;输出结果:[1,2,3];>>>a[2]=4;>>>a;输出结果:{1,2,4};
2、字符;>>>a[2]='test';>>>a;输出结果:[1,2,'test'];
3、空;>>>a=[None]*3;>>>a;输出结果:[None,None,None];
4、超出范围会报错>>>a[3]=0;输出结果:error...
2、增加元素
定义:在列表末尾加入一个元素。
用法:1、用(list.append)加入一个元素,数字、字符,列表皆可;
>>>a=[1,2,3];>>>a.append(4);>>>a;输出结果:[1,2,3,4];>>>b=[4,5,6];>>>a.append(b);>>>a;输出结果:[1,2,3,4,[4,5,6]];
注:若(a.append(b))中的(b)未定义,则会出错。
2、公式:list.append(obj);
3、删除元素
定义:在列表中选择一个元素删除。
用法:1、用(del)删除元素,数字、字符、列表皆可;
>>>string=[1,,'b','c',[1,2]];>>>del string[1];>>>string;输出结果:[1,'c',[1,2]];>>>del string[2];>>>string;输出结果:{1,'c'];
2、公式:del list[index];
4、分片操作
定义:在列表的一定范围内符直,利用分片操作,可超出列表原定范围。
用法:1、添加和替换
>>>show=list('her');>>>show;输出结果:['h','e','r'];>>>show[2:]=list('llo');>>>show;输出结果:['h', 'e', 'l', 'l', 'o'];
2、插入
>>>show=list('hlo');>>>show;输出结果:['h','l','o'];>>>show[1:1]=list{'el'}>>>show;输出结果:['h', 'e', 'l', 'l', 'o'];
3、删除
>>>show=list('heabcdllo');>>>show;输出结果:['h', 'e', 'a', 'b', 'c', 'd', 'l', 'l', 'o'];>>>del show[2:6];(或>>>show[2:6]=[])>>>show;输出结果:['h', 'e', 'l', 'l', 'o'];
注:list()函数:将字符串转化为列表。
5、嵌套列表
定义:将列表嵌套在另一个列表中。
用法:1、公式:list=[list1,list2];
>>>a=[1,2];>>>b={'a', 'b'];>>>c=[a, b];>>>c;输出结果:[[1,2],['a', 'b']];
6、列表方法(函数)
定义:通过函数对对象进行操作。
用法:1、标准格式:对象.方法(参数)
2、append():在列表的末尾添加一个新对象。
公式:list.append(obj);
>>>a=[1,2];>>>a.append([1,2]);>>>a;输出结果:[1,2,[1,2]];
3、count():统计某个元素在列表中出现的次数。
公式:list.count(obj);
>>>a=[1,2,[1,2]];>>>a.count(1);输出结果:1;
4、extend():在列表末尾增加另一个列表的值。
公式:list.extend(seq);
>>>a=[1,2,3];>>>b=['a', 'b', 'c'];>>>a,expend(b);(或a+b或a[len(a):]=b);>>>a;输出结果:[1,2,3,'a', 'b', 'c'];
5、index():从列表中搜索第一个与输入对象匹配的索引位置。
公式:list.index(obj);
>>>a=['a', 'b', 'c'];>>>a.index('b');输出结果:1;>>>a.index('d');输出结果:error...
注:1、搜索不存在的结果会报错。
6、insert():将一个对象插入写入的索引位置之前。
公式:list.insert(index,obj);
>>>a=[1,2,3];>>>a.insert(1,['a', 'b', 'c']);>>>a;输出结果:[1,['a', 'b', 'c'],2,3];
7、pop():移除列表中的一个元素(默认为最后一个元素),并返回该元素的值。
公式:list.pop(obj=list[-1]);
>>>a=[1,2,3];>>>a.pop();输出结果:3;>>>a;输出结果:[1,2];>>>a.pop(0);输出结果:1;>>>a;输出结果:[2];
8、remove():移除列表中某个值的第一个匹配项。
公式:list.remove(obj);
>>>a=[1,2,3,1];>>>a.remove(1);>>>a;输出结果:[2,3,1];>>>a.remove('a');输出结果:error;
注:与pop()不同,不返回值。
9、reverse():将列表中的元素方向交换。
公式:list.reverse();
>>>a=[1,2,3];>>>a.reverse();>>>a;输出结果:[3,2,1];
注:1、改变了列表但不返回值
2、也可用reversed()和list()函数来实现(list(reversed(a))),不过需要另一个变量,这两个函数返回的是一个迭代器对象。
10、sort():将列表按函数进行排序,默认为升序,无返回值。
公式:list.sort(func)
>>>a=[1,3,2];>>>a.sort();>>>a;输出结果:[1,2,3];
注:1、用列表赋值要用分片,避免b=a这种情况,用b=a[:];否则他们指向的是同一个列表,一个动了都会变
2、sort()是没有返回值的,需要返回值就用sorted()函数
3、sort()有两个可选扩展(key,reverse)key表示根据什么排序,reverse表示是否有逆序。
11、clear():用于清空列表,等同于(del list[:])
公式:list.clear();
>>>a=[1,2,3];>>>a.clear();>>>a;输出结果:[];
12、copy():用于复制列表,等同于(b=a[:])
公式:list.copy();
>>>a=[1,2,3];>>>b=a.copy();>>>b;输出结果:[1,2,3];