一、列表的创建
1.基本创建方法
list1 = [] #空列表
list2 = [6,7,'a',"This is a list"] #有值列表
list3 = [6,7,'a',"This is a list",[7,8,9,"This is second list"]] #列表嵌套列表
list4 = list() #调用list()方法创建空列表
list5 = list((2,4,5,6,7)) #可迭代数据转换成列表
注释:列表使用 [ ] (英文中括号) 创建。
二、列表增删改查
1.列表索引
注意: 列表中默认第一个元素的位置为: 0 然后向后依次 +1
例如:
a = [1,4,6,8,10]
print(a[0]) #取列表第一个位置的元素
print(a[4]) #取列表第五个位置的元素
输出:
1
10
注释:如上,当定义了 a列表 后,想要读出列表相应位置的值,需要编写 a[ ] (列表名 + [ ]),其中,中括号内填写元素在列表中的对应位置,例如:
在上述列表中,查找列表的第三个元素
:a [ 2 ]
它的值为 6,此时中括号内的 2 ,可以称为该列表的一个索引
2.列表---------切片
列表切片 : 切片可以简单理解为,从一个列表中,取出列表的某一个片段。
切片格式: list2 = list [ 开始位置 :结束位置 :步长 ]
开始位置: 开始位置,不填写则默认为:0,与切片取值成闭合或包含关系。
结束位置: 结束位置,不填写则默认为:列表中最后一个元素所在位置,记为:-1(负一),与切片取值成非闭合关系或不包含关系。
步长: 步长默认为 : 1,即第一次取索引为0的元素,第二次将取出索引为 1 元素,如果步长为:2,第一次取出 索引为0 的元素,第二次将取出索引为 2 的元素。
!!!
注意: 步长如果为{负数},列表将不再默认从0到列表末尾,从左至右的读出元素,而是从{开始位置}从右向左依次读出元素,可以理解为,步长的正负决定着列表的读取方向。
!!!
例如:
a=[2,4,6,8,10,[12,14]] #注意:在列表中嵌套的列表,其整体相当于上一层列表的一个元素
#切片
print(a[1:]) #从4取到最后,相当于 a[1::1]
print(a[1:-1]) #取到倒数第二值 ,不包含最后一个,即索引为 -1 的元素
print(a[1:-1:1]) #从左到右一个一个去取,取到倒数第二个
print(a[1::2]) #从左到右隔一个去取,每次索引值加 2
print(a[3::-1]) #从索引为3的元素,即元素8开始,从右向左依次取出所有在元素8之前的元素
print(a[-2::-1]) #从列表倒数第二个元素向左依次输出
输出:
[4, 6, 8, 10, [12, 14]]
[4, 6, 8, 10]
[4, 6, 8, 10]
[4, 8, [12, 14]]
[8, 6, 4, 2]
[10, 8, 6, 4, 2]
3.列表---------查
1.下标,即索引直接查找元素:
a = [2,4,6,8,10,[12,14]]
print(a[0])
print(a[1])
b = a[2]
print(b)
c = a[5][0] #取出列表中嵌套列表的值,前一个中括号内为嵌套列表在上一层列表的位置,后一个中括号内为,需要取的元素的位置。
d = a[5][1]
print(c,d)
输出:
2
4
6
12 14
2.index() 方法(函数)
index(): 根据内容查找元素在列表中的位置,有返回值。
例如:
a = [2,4,6,8,10,[12,14]]
b = a.index(8) # a列表通过调用index()取出元素8在列表中的位置,并返回赋值给变量b
print(b)
输出:
3 #输出元素8在列表中的位置为3
3.count() 方法(函数)
count(): 查找某个元素在列表中的出现次数。
例如:
a = [2,4,4,4,6,6,8,10,[12,14]]
b = a.count(4) #返回元素4在a列表中出现的次数给变量 b
c = a.count(6)
m = a.count(8)
print(b) #输出打印 b 的值
print(c)
print(m)
输出:
3
2
1
4.列表---------增
1.append() 方法(函数)
append(): 在列表末尾追加元素。
例如:
a = [2,4,6,8,10,[12,14]]
a.append(100) #将100追加到a列表末尾
print(a)
输出:
[2, 4, 6, 8, 10, [12, 14], 100]
2.insert() 方法(函数)
insert(): 按位置插入元素。
例如:
a = [2,4,6,8,10,[12,14]]
a.insert(2,1000) #在位置为 2 的元素前插入一个 1000
print(a)
输出:
[2, 4, 1000, 6, 8, 10, [12, 14]]
3.extend() 方法(函数)
extend(): 把一个列表添加到另一个列表后,合并两个列表。
例如:
a = [1, 2, 3, 9]
b = [4, 5, 6]
a.extend(b)
print(a)
print(b)
输出:
[1, 2, 3, 9, 4, 5, 6]
[4, 5, 6]
4.列表---------改
1.下标,或索引直接修改列表中元素的值
例如:
a = [2,4,6,8,10,[12,14]]
a[2] = 1000 #把位置为2的元素,即元素6改为1000
print(a)
输出:
[2, 4, 1000, 8, 10, [12, 14]]
2.切片式修改列表中元素的值
例如:
a = [2,4,6,8,10,[12,14]]
a[1:3] = [100,1000,10000]
print(a)
输出:
[2, 100, 1000, 10000, 8, 10, [12, 14]]
注意:切片时,最后的索引元素为不包含,如上方第三个元素并不会被替换。且,如果切片数量超过想要赋予的元素的数量,那么列表中超过的部分将会被覆盖。
例如:
a = [2,4,6,8,10,[12,14]]
a[1:5] = [100,1000,10000]
print(a)
输出:
[2, 100, 1000, 10000, [12, 14]] #此时元素10被直接覆盖
4.列表---------删
1.remove() 方法(函数)
remove(): 直接按值删除列表中某一元素。
例如:
a = [2,4,6,8,8,8,10,[12,14]]
a.remove(4)
a.remove(8) #如果列表中有相同的元素,默认删除从左往右找到的第一个
print(a)
输出:
[2, 6, 8, 8,10, [12, 14]] #其余的元素8仍然保存在列表中
2.pop() 方法(函数)
pop(): 按索引删除元素,如果不添加索引,将默认删除最后一个元素,有返回值。
例如:
a = [2,4,6,8,10,[12,14]]
b = a.pop(3) #删除索引为3的元素,并返回给变量b
c = a.pop() #删除列表最后一个元素
print(b)
print(c)
print(a)
输出:
8
[12, 14]
[2, 4, 6, 10]
3.del 方法
del: 直接删除某个元素,或删除整个列表。
例如:
a = [2,4,6,8,10,[12,14]]
del a[5] #删除下标或索引为5的元素
print(a)
输出:
[2, 4, 6, 8, 10]
删除整个列表
例如:
a = [2,4,6,8,10,[12,14]]
del a
print(a)
结果:
NameError: name 'a' is not defined #程序报错,没有找到名为a的变量,即a被删除
4.clear() 方法(函数)
clear(): 清空列表。
例如:
a = [2,4,6,8,10,[12,14]]
a.clear()
print(a)
输出:
[] #此时a为一个空的列表
三、列表排序
1.sort()与reverse() 方法(函数)
1.reverse() 方法(函数)
1.reverse(): 使列表逆序排列,即翻转列表
例如:
a = [2,6,7766,7,854,3454]
a.reverse() #使a列表翻转
print(a)
输出:
[3454, 854, 7, 7766, 6, 2]
2.sort() 方法(函数)
2.sort(): 使列表按排序排列
例如:
a = [2,6,7766,7,854,3454]
a.sort() #使a从小到大排列
print(a)
输出:
[2, 6, 7, 854, 3454, 7766]
sort() 方法(函数) 拓展
sort() 方法,在括号内,其实自带有reverse()方法的调用。在不改变reverse的布尔值时,其默认为不使用reverse进行翻转(即reverse = False),如果需要翻转则:
例如:
a = [2,6,7766,7,854,3454]
a.sort(reverse = True) #使a从大到小逆序排列
print(a)
输出:
[7766, 3454, 854, 7, 6, 2]
不改变reverse默认值:
a = [2,6,7766,7,854,3454]
a.sort(reverse = False) #相当于 a.sort()
print(a)
输出:
[2, 6, 7, 854, 3454, 7766]