python基础笔记4-列表


在这里插入图片描述

列表的创建与删除

列表可以存储多个不同类型的变量(对象)

创建

两种方式:

  • 使用中括号:lst=[元素1,元素2]
  • 使用内置函数:lst=list([元素1,元素2])

列表的特点

  • 列表元素按顺序有序排列
  • 索引指向唯一一个数据
    在这里插入图片描述
  • 列表可以存储重复数据
  • 可存储任意数据类型
  • 根据需要动态分配和回收内存:即不用担心储存数据过多空间不足的情况。

列表的查询操作

获取列表指定元素的索引:使用函数index()

lst=[...., ..., ...]
print(lst.index(...))

注意:

  1. 当列表有两个重复元素时,只返回第一个元素的索引
  2. 若查询的元素不在列表中时,出现错误提示:“ValueError”
  3. 可以在指定的start和stop之间进行查找
    例:
#创建列表的方式1:使用方括号
lst1=['hello','world',100,55.4,'hello']
#创建列表的方式2:使用内置函数list
lst2=list(['hello','world',100,55.4,'hello'])
print(lst2.index('hello'))
#print(lst2.index('你好'))    #ValueError: '你好' is not in list
print(lst2.index('hello',1,5))   #查找范围的索引为1-5,不包括5

运行结果:0,4

获取列表的单个元素

lst[索引数]

获取列表的多个元素

使用切片操作列表名[start : stop : step]

  1. 切片结果:原列表片的拷贝
  2. 切片范围:[start,stop)
  3. step默认为1
  4. step:
    (1)step为正数时:从start开始向后计算切片
    [:stop:step] 切片的第一个元素为列表的第一个元素
    [start::step] 切片的最后一个元素为列表的最后一个元素
    (2)step为负数时:从stop开始向前计算切片
    [:stop:step] 切片的第一个元素为列表的最后一个元素
    [start::step] 切片的最后一个元素为列表的第一个元素
lst=[10,20,30,40,50,60,70,80,90]
print(lst[1:7])#默认步长为1
print(lst[1:7:2])#start=1,stop=7,step=2
print(lst[:7:2])#start默认为0,stop=7,step=2
print(lst[1::2])#start=1,stop默认为最后一个,step=2
print('原列表',lst)
print(lst[::-1])
print(lst[7::1])
print(lst[7::-1])
print(lst[7::-2])

运行结果:

[20, 30, 40, 50, 60, 70]
[20, 40, 60]
[10, 30, 50, 70]
[20, 40, 60, 80]
原列表 [10, 20, 30, 40, 50, 60, 70, 80, 90]
[90, 80, 70, 60, 50, 40, 30, 20, 10]
[80, 90]
[80, 70, 60, 50, 40, 30, 20, 10]
[80, 60, 40, 20]

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

元素  in  列表名
元素  not in  列表名
lst=[10,20,30,40,50,60,70,80,90]
print(10 in lst)  #Ture
print(100 not in lst)#Ture

列表元素的遍历

for 迭代变量 in 列表名:
     ....
print(' ------------列表的遍历-----------')
lst=['hello','world',100,55.4,'hello']
for item in lst:
    print(item)

运行结果:
在这里插入图片描述

列表的增、删、改

增加操作

  • append():在列表末尾添加一个元素
  • extend():在列表的末尾添加至少一个元素
  • insert():在列表任意位置添加一个元素
  • 切片:在列表任意位置添加至少一个元素
# 列表末尾添加一个元素
lst=[10,20]
lst1=['hello','world',100]
print(lst,id(lst))#[10, 20] 1567945602688
lst.append(100)
print(lst,id(lst))#[10, 20, 100] 1567945602688
#lst.append(lst1)#[10, 20, 100, ['hello', 'world', 100]]

#列表末尾添加多个元素
lst.extend(lst1)#[10, 20, 100, 'hello', 'world', 100]
print(lst)

#在任意位置添加一个元素
lst1.insert(1,0)#['hello', 0, 'world', 100]
print(lst1)

#在任意位置添加多个元素
lst=[10,20,30,40,50]
lst3=[1,2,3]
lst[1:]=lst3#吧lst中位置1-4切掉,把lst3的内容放在切掉的位置上
print(lst)#[10, 1, 2, 3]

删除操作

  • remove():一次删除1个元素
    若有重复元素,只删除第一个
    要删除的元素不存在:报错VauleError
  • pop():删除指定索引位置上的一个元素
    不指定索引时,默认删除列表最后一个元素
    指定索引不存在:报错IndexError
  • 切片:一次删除至少1个元素
  • clear():清空列表
  • del:删除列表
lst=[10,20,30,40,50,10]
lst.remove(10)#删除10,有两个10,默认删除第一个10
print(lst)#[20, 30, 40, 50, 10]
lst.pop(1)#删除索引1上的元素
print(lst)#[20, 40, 50, 10]
print('--------------切片操作,至少删除1个元素,将产生一个新的列表对象---------')
print('原列表',lst)
new_lst=lst[1:3]#把原列表中的40,50切走并将其赋予新的列表中,即输出结果为切掉的元素
print('切片后列表',new_lst)#[40,50]
print('--------------切片操作,不产生新的列表对象,只删除列表元素---------')
lst=[20, 40, 50, 10]
lst[1:3]=[]#用空元素代替切掉的元素40,50,即输出结果为切除后列表的剩余元素。
print(lst)#[20,10]
#清空列表元素
lst.clear()
print(lst)
#删除列表对象
del lst
print(lst)

运行结果:
在这里插入图片描述

修改操作

  • 为指定索引元素赋予一个新值
  • 为指定切片赋予新值
lst=[1,2,3,4]
lst[2]=10#[1, 2, 10, 4]
print(lst)
lst[1:3]=[200,300,500]# [1, 200, 300, 500, 4]
print(lst)

列表的排序操作

-调用sort():列表中所有元素默认按从小到大顺序排列(升序),可以指定reverse=True 进行降序排序

  • 调用sorted():可以指定reverse=True进行降序排序,原列表不改变
print('-------使用sort()函数,不产生新列表对象----------------')
lst=[10,50,30,2,9]
print('原列表',lst,id(lst))
#调用sort(),默认升序排序
lst.sort()
print('排序后的列表,升序',lst,id(lst))
#指定关键字参数,降序排序
lst.sort(reverse=True)#reverse=True表示升序排序;reverse=False表示降序,reverse不指定则默认为False(降序)
print('排序后的列表,降序',lst,id(lst))
print('-------使用sorted()函数,产生新列表对象----------------')
lst=[10,50,30,2,9]
print('原列表',lst,id(lst))
#排序
new_list=sorted(lst)
print('排序后的列表,升序',new_list,id(new_list))
new_list=sorted(lst,reverse=True)
print('排序后的列表,升序',new_list,id(new_list))

在这里插入图片描述

列表生成式(生成列表的公式)

语法:列表名=[i*i for i in range(1,10)]
i:自定义变量;i*i:列表元素的表达式
将整数1-9以i*i的结果储存在列表中

lst=list(range(1,10))#[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(lst)
lst=[i for i in range(1,10)]#[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(lst)
lst=[2*i for i in range(1,10)]#[2, 4, 6, 8, 10, 12, 14, 16, 18]
print(lst)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值