Python学习笔记7-列表

列表是什么

1、变量可以储存一个元素,而列表是一个大容器,可以储存N多个元素。
2、列表相当于其他语言中的数组
3、列表包括三部分:正向索引、逆向索引、值

a=10
list=['hello','world,98']
print(id(list))
print(type(list))
print(list) 

在这里插入图片描述

在这里插入图片描述
列表的创建
1、创建方法一:列表名=[内容1,内容2]
2、创建方法二:调用内置函数list()

#方法一:
lst1=['hello','world',98]
#方法二:
lst2=list(['hello','world',98])

列表的特点

  • 列表元素按照顺序有序排列
  • 索引映射唯一个数据
  • 列表可以储存重复数据
  • 任意数据类型混存
  • 根据需要动态分配和回收内存
    列表的查询
    1、获取列表中指定元素的索引
lst=['hello','world',98,'hello']
print(lst.index('hello'))#如果中有相同元素只返回列表中相同元素中的第一个元素
# print(lst.index('python'))
print(lst.index('hello',1,3))#从world,到98
print(lst.index('hello',1,4))#从world,到hello

在这里插入图片描述

2、获取列表中的单个元素

  • 正向索引从0到N-1
  • 逆向索引从-N到-1
  • 指定索引不存在,抛出indexError
lst=['hello','world','98','hello','world',234]
print(lst[2])
print(lst[-3])
print(lst[6])#报错,list index out of range

在这里插入图片描述
3、获取列表中的多个元素:列表名[start:stop:step]
在这里插入图片描述

lst=[10,20,30,40,50,60,70,80]
print('------start=1,stop=6,step1------')
print(lst[1:6:1])
print('原列表:',id(lst))
lst1=lst[1:6:1]
print('切的片段:',id(lst1))
print('------省去步长,默认步长为1------')
print(lst[1:6:])
print('------步长为2-----')
print(lst[1:6:2])
print('------省去start,默认从0开始------')
print(lst[:6:2])
print('------省去stop,默认从最后结束------')
print(lst[1::2])
print('----------------步长为负数-------------------')
print('原列表:',lst)
print('#start省略,stop省略,step=-1')
print(lst[::-1])
print('#start=7,stop省略,step=-1')
print(lst[7::-1])
print('#start=6,stop=0,step=-2')
print(lst[6:0:-2])

在这里插入图片描述
4、列表元素的判断和遍历

print('p' in 'python')
print('k' not in 'python')
lst=[10,20,'python','hello']
print(10 in lst)
print(100 in lst)
print(10 not in lst)
print(100 not in lst)
print('------------遍历列表中的元素----------')
for item in lst:
    print(item)

在这里插入图片描述
列表元素的增删改操作
1、列表元素的增加操作

方法操作描述
append()在列表末尾添加一个元素
extend()在列表尾部至少添加一个元素
insert()在列表的任意位置添置一个元素
切片在列表的任意位置至少添置一个元素
print('------在列表的末尾添加一个元素,append()------')
lst=[10,20,30]
print('添加之前:',lst,id(lst))
lst.append(100)
print('添加之后:',lst,id(lst))
print('---在列表的末尾添加至少一个元素,extend()---')
lst1=['hello','world']
lst.append(lst1)
print('使用append()方法添加多个元素',lst)
lst.extend(lst1)
print('使用extend()方法添加多个元素',lst)
print('---在列表的任意位置添置一个元素,insert()---')
lst.insert(1,90)
print('在索引为1的位置上添加90,的到的列表为:',lst)
print('---在列表的任意位置至少添置一个元素---')
lst2=[True ,False ,'hello']
lst[1:4:]=lst2#相当于区间[1,4)
print('利用切片在任意位置添加多个元素后,得到列表的结果为:',lst)#切片相当于切掉后,替换去掉(1,4)中间的东西,让后替换成lst2

在这里插入图片描述

2、列表元素的删除操作

方法操作描述
remove()一次删除一个元素,重复的元素只删除第一个,元素不存在抛出ValueError
pop()删除一个指定索引上的元素,指定索引不在抛出ValueError,不指定索引删除列表最后一个元素
切片一次至少删除一个元素
clear()请空列表
del删除列表
lst=[10,20,30,40,50,60,30]
lst.remove(30)#移除一个元素,如果重复移除第一个重复的元素
print(lst)
lst.pop(1)#移除索引为1的元素
print(lst)
lst.pop()#不写索引,则默认移除列表最后一个元素
print(lst)
print('--切片操作,至少删除一个元素,将产生一个新的列表对象')
# lst=lst[1:3]#相当于查询[1,3)所以结果为[40,50]
# print(lst)
#将[1,3)位置的元素用[]来代替
lst[1:3]=[]
print(lst)
lst.clear()#删除元素
print(lst)
del lst#删除列表
print(lst) #输出报错,列表不存在

在这里插入图片描述

3、列表元素的修改

  • 为指定索引的元素赋予一个新值
  • 为指定的切片赋予一个新值
lst=[10,20,30,40]
#一次修改一个值
lst[2]=100
print(lst)
lst1=['hello','world']
lst[1:3]=lst1#索引为1到索引为3,不包括索引为三,所以是替换索引为1的和索引为2的
print(lst)

在这里插入图片描述
列表元素的排序操作

  • 调用sort()方法,列中元素默认从小到大排列,可以指定reverse=True,进行降序排列
  • 调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变,产生一个新列表
lst=[20,40,10,98,54]
print('排序前的列表',lst,id(lst))
lst.sort()#默认从小到大
print('排序后的列表',lst,id(lst))
print('---通过reverse=True,实现降序排列---')
lst.sort(reverse=True)
print(lst)
print('---使用sorted()函数---')
lst=[20,40,10,98,54]
print('排序前的列表',lst,id(lst))
lst=sorted(lst)#默认从小到大
print('排序后的列表',lst,id(lst))
print('---通过reverse=True,实现降序排列---')
lst=sorted(lst,reverse=True)
print(lst)

在这里插入图片描述
列表生成式

  • 语法格式:【列表元素表达式 for 自定义变量 in 可迭代对象】(【i for i in range(1,10)】
  • 列表元素表达式中通常包括自定义变量
lst=[i for i in range(1,10)]
print(lst)
print('---列表的元素为2,4,6,8,10---')
lst1=[i*2 for i in range(1,6)]
print(lst1)

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值