Python学习笔记DAY6(列表)

目录

列表

 列表对象的创建

 列表的查询操作

获取列表中指定元素的索引

获取列表中的单个元素

 获取列表中的多个元素-切片操作

 判断指定元素在列表中是否存在

列表元素的遍历

列表元素的增、删、改操作

列表元素的增加操作

​编辑

列表元素的删除操作

列表元素的修改操作

列表元素的排序操作

列表生成式

  • 列表

1、变量可以存储一个元素,而列表是一个“大容器”可以存储N个元素,程序可以方便地对这些数据进行整体操作,列表本身是可迭代对象

2、列表相当于其他语言的数组

3、列表示意图

a=10 #变量存储的是一个对象的引用
lst=['hello','world',98]
print(id(lst))#标识
print(type(lst))#数据类型
print(lst)#值

  •  列表对象的创建

1、使用方括号:lst                =          [           'hello' ,              'world'   ]

                           列表对象名  赋值号 中括号 元素   英文逗号 元素    中括号

2、使用内置函数list():lst2=list(['hello','world',]) 

lst1=['hello','world']
lst2=list(['helo','world'])

3、列表的特点

 列表元素按顺序有序排序(从0开始)或按逆序排序(从-1开始),索引映射唯一一个数据

lst2=list(['helo','world'])
print(lst2[0],lst2[-2]) #结果为hello hello

  •  列表的查询操作

  • 获取列表中指定元素的索引

lst=['hello','world',98,'hello']
print(lst.index('hello')) #有相同元素只返回第一个的索引,结果为0
#print(lst.index('Python'))#ValueError: 'Python' is not in list
#print(lst.index('hello',1,3))#在索引1到3(不包括3)内找元素hello #ValueError: 'hello' is not in list
print(lst.index('hello',1,4))#在索引1到4(不包括4)内找元素hello,结果为3
  • 获取列表中的单个元素

lst=['hello','world',98,'hello']
#获取索引为2的元素
print(lst[2])
#获取索引为-2的元素
print(lst[-2])
#获取索引为10的元素
#print(lst[10])#IndexError: list index out of range
  •  获取列表中的多个元素-切片操作

切片可以创建一个新的列表

lst3=[10,20,30,40,50,60,70,80]
#start=1,stop=6,step
print(lst3[1:6:1])#从索引为1开始到6结束(不包括6)
print(lst3[1:6])#默认步长为1
print(lst3[1:6:])
print(lst3[1:6:2])#步长为2
lst4=lst3[1:6:1]#切出一个新的列表
print('原列表',id(lst3))
print('新列表',id(lst4))
#stop=6,step=2,start默认为第0个元素
print(lst3[:6:2])
#start=1,step=2,stop默认为最后一个元素
print(lst3[1::2])
#步长为负数
print(lst3[::-1])#倒序输出
#star=7
print(lst3[7::-1])
#star=6,stop=0,step=-1
print(lst3[6:0:-2])#从索引为6开始到0结束(不包括0),步长为2
  •  判断指定元素在列表中是否存在

元素  in 列表名

元素  not in 列表名

lst3=[10,20,30,40,50,60,70,80]
print(10 in lst3)#Ture
print(10 not in lst3)#False
  • 列表元素的遍历

for  迭代变量  in  列表名 :

操作

lst3=[10,20,30,40,50,60,70,80]
for item in lst3:
    print(item,end='\t')
  • 列表元素的增、删、改操作

  • 列表元素的增加操作

#append
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))#id没变,说明没有创建一个新的列表

#extend、insert
lst=[10,20,30]
lst2=['hello','world']
lst.append(lst2)#将lst2作为一个元素加到列表的末尾
print(lst)
lst.extend(lst2)#将lst2中各个元素加到列表末尾
print(lst)
lst.insert(1,90)#在任意位置添加一个元素 在索引为1处添加元素90
print(lst)

#切片:切掉,在任意位置用N个元素替换原来的元素,没有创建新列表
print(id(lst))
lst3=[True,False,'hello']
lst[1:]=lst3#从1开始(stop默认,step默认)将lst3中的元素替换到lst中
print(lst,id(lst))
  • 列表元素的删除操作

#remove
lst=[10,20,30,40,50,60,30]
lst.remove(30)#从列表中移除一个元素,若有重复元素则只移除第一个元素
print(lst)
#lst.remove(100)#ValueError: list.remove(x): x not in list

#pop
lst.pop(1)#移除索引为1的元素
print(lst)
#lst.pop(5)#IndexError: pop index out of range
lst.pop()#默认删最后一个元素
print(lst)

#切片:截取,创建一个新列表
print(lst,id(lst))
lst1=lst[1:4]#截取索引从1开始从4(不包括4)的元素,组成一个新列表
print(lst1,id(lst1))
#切片:删除,不创建新列表
lst[1:4]=[]#将原列表中索引从1开始从4(不包括4)的元素删除
print(lst)

#clear:清除列表中的所有元素
lst.clear()
print(lst)
#del:将列表删除
del lst
#print(lst)#NameError: name 'lst' is not defined
  • 列表元素的修改操作

1、为指定索引的元素赋予一个新值

2、为指定的切片赋予一个新值

#修改
lst2=[10,20,30,40]
#一次修改一个值
lst2[2]=100
print(lst2)
#切片,一次修改多个值
lst2[1:3]=[300,400,500,600]#索引从1到3(不包括3)的元素改为300,400,500,600
print(lst2)
  • 列表元素的排序操作

方法:

1、调用sort()方法:列表中所有的元素默认按照从小到大排,可以指定reverse=Ture,进行降序排序,不产生新列表

2、调用内置函数sorted(),可以指定reverse=Ture,进行降序排列,原列表不发生改变,产生新列表

#排序
#sort()
lst3=[20,40,10,98,54]
print('排序前',lst3,id(lst3))
lst3.sort()#调用sort()方法,默认升序排列
print('排序后',lst3,id(lst3)) #id没变,没有创建新列表
lst3.sort(reverse=True)#降序排列
print('排序后',lst3)
lst3.sort(reverse=False)#升序排列
print('排序后',lst3)
#sorted()
lst3=[20,40,10,98,54]
print('原列表',lst3,id(lst3))
lst4=sorted(lst3)#默认升序
print('新列表',lst4,id(lst4))
lst5=sorted(lst3,reverse=True)#降序
print('新列表',lst5,id(lst5))
  • 列表生成式

即生成列表的公式

语法结构:

 注意:“表示列表元素的表达式”中通常包含自定义变量

lst6=[i for i in range(1,10)]
print(lst6)
lst7=[i*i for i in range(1,10)]
print(lst7)
lst8=[2*i for i in range(1,6)]
print(lst8)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值