Python学习笔记(3)列表
前言
列表是Python中重要的内置对象之一,是包含若干元素的有序连续内存空间。他有以下特点:
(1)可以包含任意类型的对象。
(2)列表可变。
(3)储存的是对对象的引用。
一、基本操作
1.创建列表
列表对象可以用列表常量或者list()来创建,例如:
[1,2,3,(1,2,3),"asdf"] # 用不同类型数据创建列表
list((1,2,3)) # 将元祖转换为列表
list(range(1,3)) # 将range对象转换为列表
list('hello') # 将字符串转换为列表
list({1,2,3} # 集合转换为列表
list({'a':1,'b':2}) # 将字典的键转换为列表
list(x+2 for x in range (5)) #用解析结构创建列表,结果[2, 3, 4, 5, 6]
2.求长度
用len()函数获取列表函数,例如:
a = [1,2,3,(1,2,3),4]
print(len(a))
#运行结果:5
#注意:列表内的一个字符串或者集合列表之类的元素只算一个长度
3.合并
合并通常来说有两种方法,一种是直接相加,另一种是+=一个列表,前一种方法不属于原地操作,效率较慢,而且会改变它的地址,第二种属于,而且效率高,所以推荐使用第二种。代码如下:
a = [1, 2, 3]
print(id(a)) # 结果:2378862153984
a = a + [3]
print(id(a)) # 结果:2378862475456 id改变
a += [3]
print(id(a)) # 结果2378862475456 id 没变
4.迭代
迭代操作可以便利列表中的对象,例如:
a = [1, 2, "dsf"]
for i in a:
print(i)
#运行结果:1 2 “dsf”
5.关系判断
用in判断列表中是否包含某个元素,例如:
x = [1,2,3]
print(1 int x]
结果:true
6.索引
我们可以利用[]来特定提取某个位置的值,方括号内的是下标从0开始,例如第一个元素的下标就为1,往后以此类推。
x = [1,2,3,4]
print(x[0]) #结果:1,即第一个数
print(x[4]) #结果:报错,原因是超出了列表的范围,他表示第五个数,但只有4个
print([x[-1]) #结果:4,即倒数第一个数
print([x[-4]) #结果:1,即倒数第一个数
print([x[-5]) #报错,超出范围
7.分片
利用分片操作,我们可以获取列表中的部分对象,或将多个对象修改。
x = [1,2,3,4,5,6]
x[1:3] #表示下表为1到下标为3的列表,左闭右开区间,即[2,3]
x[:]或x[::] #表示整个列表
x[3:] #表示从下标3开始一直到结束,左边是闭区间,即[4,5,6]
x[:3] #表示一直到下标3的列表,同样右边是开区间,即[1,2,3]
x[1:5:2] #表示下标1~4的列表,最右边的2表示步长,即每两个数取一个值,结果为:[2,4,6]
x[1:5:-2] #步长为负数时,倒着取值,即:[6,4,2]
x[1:3] = 'ab' #批量修改值,此时x为[1,'a','b',4,5,6]
8.矩阵
通过列表的嵌套来表示矩阵,效果类似于c/c++里的多维数组。
x = [[1,2,3],[4,5,6],[7,8,9]]
x[0] #表示[1,2,3]
x[0][2] #多重索引,结果为3
二、列表常用方法
1.append()
append()方法可在列表末尾添加一个对象。例如:
a = [1, 2, 3, 4]
a.append("123")
print(a)
# 运行结果:[1, 2, 3, 4, '123']
2.extend()
extend()方法可以在末尾一次插入多个对象,参数为可迭代对象。例如:
a = [1, 2, 3, 4]
a.extend("999") # 当参数是字符串时
print(a) # 运行结果:[1, 2, 3, 4, '9', '9', '9']
a.extend([1, 2, 3]) # 当参数为列表时
print(a) # 运行结果:[1, 2, 3, 4, '9', '9', '9', 1, 2, 3]
3.insert()
insert()方法可以在指定位置插入对象,括号里的参数为下标和插入内容(超出范围会报错),代码如下:
a = [1, 2, 3]
a.insert(2,'a') # 在下标二处插入‘a'
print(a) #运行结果:[1, 2, 'a', 3]
4.remove()
remove()方法用于删除列表中的指定值,如果有重复值,则删除第一个,若不存在则出现异常。例如:
a = [1, 2, 2, 3]
a.remove(2) # 删除第一个2
print(a) # 运行结果:[1, 2, 3]
a.remove(2) # 再删除一个2
print(a) # 运行结果:[1, 3]
5.pop()
pop()方法可以用于定向删除某一位置的数,括号里没有参数时,则默认删除最后一个数,删除后返回删除对象,例如:
a = [1, 2, 3, 4]
print(a.pop(1)) # 删除下标为1的数,并打印返回对象,结果:2
print(a) # 打印删除后的a,结果:[1, 3, 4]
6.del语句
del语句和pop()作用相似,但语法不同,并且del语句可以一次删除多个对象,代码如下:
a = [1, 2, 3, 4, 5]
del a[2] # 删除下标为2的数
print(a) # 结果:[1, 2, 4, 5]
b = [1, 2, 3, 4, 5]
del b[1:4] # 可以进行切片操作
print(b) # 结果:[1, 5]
7.clear()
clear()方法可以删除列表中的全部元素
a = [1, 2, 3, 4, 5]
a.clear() # 括号里不能有参数,我试了,报错QwQ
print(a) # 变成空列表,即:[]
8.copy()
copy()方法可以复制列表对象。例如:
a = [1, 2, 'aa']
b = a.copy()
print(b) # 将a复制给b,结果为a的值
9.sort()
sort()方法可以将列表中的元素排序,若全是数字,则从小到大排序;若全是字符串,则按字典顺序排序;若包含多种类型则报错。例如:
a = [8, 9, 6, 5]
a.sort()
print(a) # 结果:[5, 6, 8, 9]
b = ['d', 's', 'a', 's']
b.sort()
print(b) # 结果:['a', 'd', 's', 's']
c = [4, 'a']
c.sort()
print(c) # 结果:报错
10.reverse()
reverse()方法可以将列表反转,配合sort使用可以实现数字的从小到大排序,例如:
a = [1,2,3,4]
a.reverse()
print(a) # 结果:[4, 3, 2, 1]
—文章结束—
如果有收获的话,点个关注再走吧~我会不定时更新,感谢收看。
往期目录: