列表在python中是一个十分重要的知识点,它类似于c++中的数组,但是比数组处理起来方便很多。这篇文章总结了我关于列表的一些认知和重要的知识点:
一、列表的生成:
列表的生成就是最简单的变量名+等于号+中括号的形式
lst=['hello','world',98]
二、列表的查询:
查询一个元素在列表中是否存在主要的关键字为index
lst=['hello','world',98,'hello']
print(lst.index('hello')) #如果列表中有相同元素只返回列表中相同元素的第一个元素的索引
也可以在index关键字后面跟范围来确定索引范围。
print(lst.index('hello',1,3)) #ValueError: 'hello' is not in list 'world',98
print(lst.index('hello',1,4)) #3
上面一行代码会报错,因为hello不在其中,不能返回索引值。
三、列表的切片
切片是从原列表中获取多个元素,进行拷贝,生成新的列表。
lst=[10,20,30,40,50,60,70,80]
#start=1,stop=6,step=2
print(lst[1:6:2])
步长也可以为负数,如果为负数,则是往前进行切片:
print(lst[::-1])
#start=7,stop 省略 step=-1
print(lst[7::-1])
#start=6,stop=0,step=-2
print(lst[6:0:-2])
#[80, 70, 60, 50, 40, 30, 20, 10]
[80, 70, 60, 50, 40, 30, 20, 10]
[70, 50, 30]
四、列表的增加元素
1、append 向列表末尾增加一个元素
并未生成新的列表
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))
lst2=['hello','world']
#lst.append(lst2) #将lst2做为一个元素添加到列表的末尾
#向列表的末尾一次性添加多个元素
lst.extend(lst2)
print(lst)
2、insert 在任意位置添加元素:
#在任意位置上添加一个元素
lst.insert(1,90)#(索引位,元素值)
print(lst)
3、切片法
lst3=[True,False,'hello']
#在任意的位置上添加N多个元素
lst[1:]=lst3
print(lst)
五、删除操作
1、remove移除第一个元素
lst=[10,20,30,40,50,60,30]
lst.remove(30) #从列表中移除一个元素,如果有重复元素只移第一个元素
2、pop删除指定索引位置
lst.pop(1)
print(lst)
#lst.pop(5) #IndexError: pop index out of range 如果指定的索引位置不存在,将抛出异常
lst.pop() #如果不指定参数(索引),将删除列表中的最后一个元素
print(lst)
3、clear清除列表中的所有元素
lst.clear()
print(lst)
4、不产生新的列表对象,而是删除原列表中的内容
lst[1:3]=[]
print(lst)
如果没有赋值空列表那就是用切片的方式生成一个新列表。
六、元素的修改操作
1、指定索引的元素给定一个新的值:
lst=[10,20,30,40]
#一次修改一个值
lst[2]=100
print(lst)
2、修改多个值
print(lst)
lst[1:3]=[300,400,500,600]
print(lst)
七、列表的排序操作:
1、调用sort()方法,列有中的所有元素默认按照从小到大的顺序进行排序,可以 指定 reverse=True,进行降序 排序
lst=[20,40,10,98,54]
print('排序前的列表',lst,id(lst))
#开始排序 ,调用列表对象的sort方法,升序排序
lst.sort()
print('排序后的列表',lst,id(lst))
#通过指定关键字参数,将列表中的元素进行降序排序
lst.sort(reverse=True) #reverse=True 表示降序排序, reverse=False就是升序排序
print(lst)
lst.sort(reverse=False)
print(lst)
tip:我们发现两个id相同,说明是原列表
2、调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变
lst=[20,40,10,98,54]
print('原列表',lst)
#开始排序
new_list=sorted(lst)
print(lst)
print(new_list)
#指定关键字参数,实现列表元素的降序排序
desc_list=sorted(lst,reverse=True)
print(desc_list)
两种方式的差别主要在于第二种方式产生新列表,原列表不改变。
八、列表生成式
生成有规律的列表
lst=[i*i for i in range(1,10)]
print(lst)
'''列表中的元素的值为2,4,6,8,10'''
lst2=[i*2 for i in range(1,6) ]
print(lst2)