一、列表的定义
列表(list)是表示任意元素的序列,元素可以是任意的数据类型,且是有序、可变的
创建
列表需要使用中括号[],元素之间使用英文的逗号进行分隔
ls=['hello','world',98]
调用内置函数list()
ls2=list(['hello','world',98])
特点
-
列表元素按顺序有序排序
-
索引映射唯一数据
-
列表可以存储重复数据
-
任意数据类型混存
-
根据需要动态分配和回收内存
二、列表的拼接
所有的序列都可以拼接,操作是一致的
l1=[1,2,3]
l2=[4,5,6]
l3=l1+l2
print(l3) #[1, 2, 3, 4, 5, 6]
l4=l2+l1
print(l4) #[4, 5, 6, 1, 2, 3] 与顺序有关
三、列表的查询
index()获取指定元素
st=['hello','world',98,'hello']
print(ls.index('hello')) #如果列表中有相同元素,只返回列表中相同元素的第一个索引
print(ls.index('嘻嘻')) #若列表中无该元素,则报错
print(ls.index("hello",n,m)) #返回指定索引在n和m-1之间查询值的索引值
获取列表中的单个元素
-
语法:列表名[n] n为索引
-
正向索引从0到N-1 举例:ls[0]
-
逆向索引从-N到-1 举例:ls[-N]
-
指定索引不存在,则报错
获取列表中的多个元素
-
语法格式:列表名[start:stop:step] start为开始索引,stop-1为结束索引,step为步长
-
切片的范围:[start,stop)
-
start默认为0,stop默认为-1,step默认为1,均可省略不写,当step省略时,最后一个冒号可以不写,start和stop同时省略时,切片范围为列表所有数据,如[::-1]则表示倒序显示该列表
-
step为正数时:从start开始,每隔step-1向左取一个元素
-
step为负数时:从stop开始切片,到start-1结束,每隔step-1向右取一个元素
嵌套列表取值
ls=[0,1,2,[3,4,[5,6,7]]]
#通过索引获取列表中的6
print(ls[3]) #[3,4,[5,6,7]] 第一步,通过第一层索引获取包含6的列表
print(ls[3][2]) #[5,6,7] 第二步,索引获取ls[3]中的包含6的列表
print(ls[3][2][1]) #6 第三步,索引获取ls[3][2]中6
四、列表的常用操作
增加
append()追加元素,在列表的末尾添加一个元素
ls=['hello','world']
ls.append('!')
extend()在列表的末尾至少添加一个元素
ls=['hello','world',98]
ls2=['hello','world']
ls.extend(ls2) #向列表的末尾一次性添加多个元素
ls.extend('abcd') #['hello','world',98,a,b,c,d] 将可迭代元素依次添加到列表中
ls.append(ls2) #将ls2作为一个元素添加到列表的末尾
insert()在列表的任意位置添加一个元素
ls=['hello','world',98]
ls.insert(1,90) #在索引为1处,添加一个值为90的元素
切片,在列表的任意位置添加至少一个元素
ls=['hello','world',98]
ls3=[True,False]
ls[1:]=ls3 #ls列表从索引为1位置被切割舍弃,切割部分替换为ls3
删除
pop()删除一个指定索引位置上的元素
指定索引不存在则报错
不存在索引,则默认删除列表中最后一个元素
ls=['hello','world',98]
ls.pop(1)
ls.pop()
remove()删除一个元素
重复元素只删除第一个
元素不存在则报错
ls=['hello','world',98]
ls.remove('hello')
切片,一次至少删除一个元素
ls=['hello','world',98]
new_list=ls[1:2]
clear()清空列表
ls=['hello','world',98]
ls.clear()
del删除列表
ls=['hello','world',98]
del ls
修改
为指定索引的元素赋予一个新值
语法:列表名[索引位置]=值
ls=[10,20,30,40]
ls[2]=100
print(ls) #[10, 20, 100, 40]
为指定的切片赋予一个新值
语法:列表名[n:m]=[值1,值2,,] #修改索引范围[n,m)内容为指定值
ls=[10,20,30,40]
ls[1:3]=[300,400,500]
print(ls) #[10, 300, 400, 500, 40]ls=[10,20,30,40]
ls[1:3]=[300,400,500]
print(ls) #[10, 300, 400, 500, 40]
五、列表的其他方法
排序
调用sort()方法,默认元素升序排序,可以通过指定reverse=True,进行降序排序,该方法是在原列表上进行修改
ls=[50,35,567,798,2]
ls.sort() #升序 [2, 35, 50, 567, 798]
print(ls)
ls.sort(reverse=True) #倒序 [798, 567, 50, 35, 2]
print(ls)
调用内置函数sorted(),可以通过指定reverse=True,进行降序排序,该方法是产生一个新列表
ls=[50,35,567,798,2]
haha=sorted(ls)
heh=sorted(ls,reverse=True)
print(ls) #[50, 35, 567, 798, 2]
print(haha) #[2, 35, 50, 567, 798]
print(heh) #[798, 567, 50, 35, 2]
六、列表和字符串的转换
字符串转为列表
list()函数,将字符串转换成单个字符的列表
a='abcdefg'
print(list(a)) #['a', 'b', 'c', 'd', 'e', 'f', 'g']
列表转换为字符串
.join()将字符串中可迭代对象的字符串拼接起来
ls=['a', 'b', 'c', 'd', 'e', 'f', 'g']
print('/'.join(ls)) #a/b/c/d/e/f/g 使用/将列表拼接起来,其中/可为任意值或空