1.List的基本操作
(1)构造空列表
list1 = [ ]
print(type(list1))
Output:
<class 'list'>
(2)构造列表(列表中的元素可以为int,str,甚至列表可以嵌套列表)
list2 = [1,2,3,'wo','mike',[3,'milk','beer'],'pear']
print(type(list2))
print(list2)
Output:
<class 'list'>
[1, 2, 3, 'wo', 'mike', [3, 'milk', 'beer'], 'pear']
(3)列表的比较操作(列表的比较操作,返回的类型是布尔类型,通常只比较列表的第一个元素)
list1 = [1,2,'beer','pear']
list2 = [3,4,'apple']
print(list1 < list2)
print('------')
list1 = [1,2,'beer','pear']
list2 = [0,4,'apple']
print(list1 < list2)
Output:
True
------
False
(4)列表的连接操作(两个列表可以直接使用加号进行连接)
list1 = [1,2,'beer','pear']
list2 = [3,4,'apple']
list3 = list1 + list2
print(list3)
output:
[1, 2, 'beer', 'pear', 3, 4, 'apple']
(5)列表的成员关系操作(用in来判断元素是否属于列表,返回类型同样为布尔型)
list1 = [1,22,['beer','pear'],'rouse',66,'strive']
num1 = 22 in list1
num2 = 33 in list1
print(type(num1))
print(num1)
print(num2)
output:
<class 'bool'>
True
False
in 的作用效果只能是一级,所以查找列表嵌套的列表元素,要指定到嵌套列表的首地址
list1 = [1,22,['beer','pear'],'rouse',66,'strive']
num3 = 'beer' in list1
num4 = 'beer' in list1[2]
print(type(num3))
print(num3)
print(num4)
output:
<class 'bool'>
True
False
(6)列表的分片操作(list1 [a : b : c] , a表示分片的开始位置,b表示分片的结束位置,c表示的步长,)
通常切片的默认顺序为从左至右,且默认步长为1
注意:在切片时能够取到起始位置标号为a的元素,不能取到结束位置标号为b的元素。
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad']
New_list1 = list1[1:6]
New_list2 = list1[1:6:2]
print(New_list1)
print(New_list2)
Output:
[22, ['beer', 'pear'], 'rouse', 66, 'strive']
[22, 'rouse', 'strive']
在列表中可以从右向左对列表进行切片,当步长为负时实现逆序,如果从右向左进行切片,不写负数的步长,则分片为空。
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad']
New_list1 = list1[7:3]
New_list2 = list1[7:1:-1]
print(New_list1)
print(New_list2)
Output:
[]
['bad', 'good', 'strive', 66, 'rouse', ['beer', 'pear']]
在列表中对元素可以使用负数进行编号,第一个元素默认下标为0,那么最后一个元素下标为-1,所以可以实现使用负数下标进行分片,使用负数下标的本质和正数相同,所以对于正负步长的使用同上。
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad']
New_list1 = list1[-6:-3]
New_list2 = list1[-7:-1:2]
New_list3 = list1[-2:-7:-1]
print('list1[-1]=',list1[-1])
print('list1[-7]=',list1[-7])
print('New_list1=',New_list1)
print('New_list2=',New_list2)
print('New_list3=',New_list3)
Output:
list1[-1]= bad
list1[-7]= 22
New_list1= [['beer', 'pear'], 'rouse', 66]
New_list2= [22, 'rouse', 'strive']
New_list3= ['good', 'strive', 66, 'rouse', ['beer', 'pear']]
2.List的内置方法
使用dir命令查看list的内置方法
>>>dir(list)
Output:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
(1)append在列表末尾插入一个元素
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad']
list1.append('nice')
print('list1 =',list1)
Output:
list1 = [1, 22, ['beer', 'pear'], 'rouse', 66, 'strive', 'good', 'bad', 'nice']
(2)extend在列表末尾拓展另一个列表
list1 = [1,22,'bad','apple','nice','company','right',5,29,22]
list2 = ['left','00',999]
list1.extend(list2)
print('list1 =',list1)
Output:
list1 = [1, 22, 'bad', 'apple', 'nice', 'company', 'right', 5, 29, 22, 'left', '00', 999]
(3)insert在列表任意位置插入元素
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad']
list1.insert(1,'wow')
print('list1 =',list1)
Output:
list1 = [1, 'wow', 22, ['beer', 'pear'], 'rouse', 66, 'strive', 'good', 'bad']
(4)count 统计某个元素在列表中出现的次数
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad',22]
num1 = list1.count(22)
print('num1 =',num1)
Output:
num1 = 2
(5)index 索引某个元素在列表的下标,也可以限定查找的范围
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad',22]
num1 = list1.index(22)
num2 = list1.index(22,3,9)
print('num1 =',num1)
print('num2 =',num2)
Output:
num1 = 1
num2 = 8
(6)pop出栈删除 ,不加参数从列表末尾出栈,加上参数从指定位置出栈
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad',22]
list1.pop()
print('list1 =',list1)
print('-----')
list1.pop(0)
print('list1 =',list1)
Output:
list1 = [1, 22, ['beer', 'pear'], 'rouse', 66, 'strive', 'good', 'bad']
--------------
list1 = [22, ['beer', 'pear'], 'rouse', 66, 'strive', 'good', 'bad']
(7)remove删除元素 ,如果在列表中有相同元素,则只删除第一个找到的元素
list1 = [1,22,'bad','apple','nice','company','right',5,29,22]
list1.remove(5)
print('list1 =',list1)
Output:
list1 = [1, 22, 'bad', 'apple', 'nice', 'company', 'right', 29, 22]
(8)reverse 逆置列表的元素
list1 = [1,22,['beer','pear'],'rouse',66,'strive','good','bad',22]
list1.reverse()
print('list1 =',list1)
Output:
list1 = [22, 'bad', 'good', 'strive', 66, 'rouse', ['beer', 'pear'], 22, 1]
(9)sort 列表元素进行排序,当元素既有int和str时不能进行排序
list1 = [1,22,66,3,4,5,67,65,29,22]
list2 = ['bad','apple','nice','company','right']
list1.sort()
list2.sort()
print('list1 =',list1)
print('list2 =',list2)
Output:
list1 = [1, 3, 4, 5, 22, 22, 29, 65, 66, 67]
list2 = ['apple', 'bad', 'company', 'nice', 'right']
sort的默认排序顺序是从小到大,当参数reverse = True 是将排序结果逆置
list1 = [1,22,66,3,4,5,67,65,29,22]
list2 = ['bad','apple','nice','company','right']
list1.sort(reverse=True)
list2.sort(reverse=True)
print('list1 =',list1)
print('list2 =',list2)
Output:
list1 = [67, 66, 65, 29, 22, 22, 5, 4, 3, 1]
list2 = ['right', 'nice', 'company', 'bad', 'apple']
(10)copy 复制列表,值得注意的是,使用copy方法将重新产生一个新的列表,而=只是将地址进行赋予,会随原列表的变化而变化。
list1 = [1,22,'bad','apple','nice','company','right',5,29,22]
list2 = list1.copy()
list3 = list1
print('id_list1 =',id(list1))
print('id_list2 =',id(list2))
print('id_list3 =',id(list3))
list1.pop()
print('list1 =',list1)
print('list2 =',list2)
print('list3 =',list3)
Output:
id_list1 = 2095941706312
id_list2 = 2095941706376
id_list3 = 2095941706312
list1 = [1, 22, 'bad', 'apple', 'nice', 'company', 'right', 5, 29]
list2 = [1, 22, 'bad', 'apple', 'nice', 'company', 'right', 5, 29, 22]
list3 = [1, 22, 'bad', 'apple', 'nice', 'company', 'right', 5, 29]
(11)clear 清空列表,只是清空列表的内容
list1 = [1,22,'bad','apple','nice','company','right',5,29,22]
print('id_list1 =',id(list1))
list1.clear()
print('list1 =',list1)
print('id_list1 =',id(list1))
Output:
id_list1 = 2515029811784
list1 = []
id_list1 = 2515029811784
3.List的函数
(1)del 删除指定下标的元素
list1 = [1,22,'bad','apple','nice','company','right',5,29,22]
del list1[2]
print('list1 =',list1)
Output:
list1 = [1, 22, 'apple', 'nice', 'company', 'right', 5, 29, 22]
(2)len 求列表的长度
list1 = [1,22,'bad','apple','nice','company','right',5,29,22]
num1 = len(list1)
print('num1 =',num1)
Output:
num1 = 10
(3)max,min 求最大最小值
list1 = [1,22,59,5,29,22]
num1 = min(list1)
num2 = max(list1)
print('num1 =',num1)
print('num2 =',num2)
Output:
num1 = 1
num2 = 59
(4)list 将其他类型转换为列表形式
str1 = 'good good study'
list1 = list(str1)
print(type(list1))
print('list1 =',list1)
Output:
<class 'list'>
list1 = ['g', 'o', 'o', 'd', ' ', 'g', 'o', 'o', 'd', ' ', 's', 't', 'u', 'd', 'y']