1.为什么需要列表
a=10 #变量存储的是一个对象的引用 lst=['hello','world',98] print(id(lst)) print(type(lst)) print(lst)
2.列表的创建
'''创建列表的第一种方式,使用[]''' lst =['hello','world',98] print(lst) '''创建列表的第二种方式,使用内置函数list()''' lst2=(['hello','world',90]) print(lst2)
3.列表的特点
lst=['hello','world',90,'hello'] print(lst) print(lst[0],lst[-4])
4.获取指定元素的索引
lst=['hello','world',98,'hello'] print(lst.index('hello')) #print(lst.index('pyhton')) ValueError: 'pyhton' is not in list #print(lst.index('hello',1,3)) ValueError: 'hello' is not in list print(lst.index('hello',1,4))
5.获取列表中的多个元素,切片操作
lst=[10,20,30,40,50,60,70,80] #start=1,stop=6,step1 print('原列表',id(lst)) lst2=lst[1:6:1] print('切的片段:',id(lst2)) print(lst[1:6])#默认step=1 #start=1,stop=6,step=2 print(lst[1:6:2]) #stop=6,step=2,start采用默认 print(lst[:6:2]) #start=1,step=2,stop采用默认 print(lst[1::2]) print('-----step步长为负数的情况----------') print('原列表',lst) print(lst[::-1]) #start=-7,stop省略,step=1 print(lst[7::-1]) #start=6,stop=0,step=-2 print(lst[7:0:-2])
6.列表元素的判断和遍历
print('p' in 'python') print('k' not in 'python') lst=[10,20,'python','hello'] print(10 not in lst)
7.列表元素的添加操作
lst=[10,20,30] print('添加元素之前:',lst,id(lst)) lst.append(100) print('添加元素之后:',lst,id(lst)) lst2=['hello','world'] #lst.append(lst2) [10, 20, 30, 100, ['hello', 'world']] lst.extend(lst2)#向列表的末尾一次性添加多个元素 print(lst) #在任意位置添加一个元素 lst.insert(1,90) print(lst) lst3=['True','False','hello'] #在任意位置上添加多个元素 lst[1:]=lst3 print(lst)
8.列表的删除操作
lst=[10,20,30,40,50,60,30] lst.remove(30) #从列表中移除一个元素,如果有重复元素只移除第一个元素 print(lst) #pop() 根据索引移除元素 lst.pop(1) print(lst) #lst.pop(5) IndexError: pop index out of range 如果指定的索引位置不存在,将抛出异常 lst.pop() #如果不指定参数(索引),将删除列表中的最后一个元素 print(lst) print('-----------切片操作,删除至少一个元素,将产生一个新的列表对象---------------') new_lst=lst[1:3] print('原列表',lst,id(lst)) print('切片后的列表',new_lst,id(new_lst)) '''不产生新的列表对象,而是删除原列表中的内容''' lst[1:3]=[] print(lst,id(lst)) '''清除列表中的所有元素''' lst.clear() print(lst) '''del语句将列表对象删除''' del lst #print(lst) NameError: name 'lst' is not defined
9.列表的修改
lst=[10,20,30,40] #一次修改一个值 lst[2]=100 print(lst) #修改多个值 lst[1:3]=[300,400,500,600] print(lst)
10.列表的排序
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) print('-----------使用内置函数sroted()对列表进行排序,将产生一个新的列表对象-----------') new_lst=sorted(lst) print(lst,id(lst)) print(new_lst,id(new_lst)) #指定关键字参数,实现列表元素的降序排序 desc_list=sorted(lst,reverse=True) print(desc_list)
11.列表的生成式
lst=[i*i for i in range(1,10)] print(lst) '''列表中的元素的值为2,4,6,8,10''' lst2=[i*2 for i in range(1,11)] print(lst2)