python06_列表list

本文介绍了Python中列表的基本概念,包括列表的定义、索引和切片操作,以及增删改查的方法(append、insert、pop、remove和修改)。此外,还涵盖了列表排序、嵌套、循环删除等高级操作,并指出了一种更安全的删除策略。
摘要由CSDN通过智能技术生成

一、列表简介

1. 定义:

列表:能装东西的东西
在python中用[ ]来表示一个列表,列表中的元素通过,隔开

a = ["周润发", "周杰伦", "周华健"]

2.特性:

2.1 也像字符串一样有索引和切片

举例:
在这里插入图片描述

2.2 索引超过范围会报错

举例:list index out of range
在这里插入图片描述

2.3 可以用for循环进行遍历

举例:用item表示列表里的每个元素
在这里插入图片描述

2.4 用len可以拿到列表的长度

举例:
在这里插入图片描述

二、列表的增删改查

1. 向列表中添加内容

lst.append()

append:向列表中追加内容
举例:
在这里插入图片描述
insert:向列表中插入内容

lst.insert()

举例:
在这里插入图片描述
extend:可以合并两个列表,批量的添加

lst.extend()

举例:
在这里插入图片描述

2. 删除

ret = lst.pop( ):给出被删除的索引,返回被删除的元素

lst.pop(3)
ret = lst.pop(3)

举例:
在这里插入图片描述
remove:删除某个元素

lst.remove()

举例:
在这里插入图片描述

3. 修改

直接用索引就可以完成修改操作

lst[位置] = "要修改的内容"

举例:
在这里插入图片描述

4. 查询

直接用索引进行查询操作

print(lst[3])

小练习

lst = ["赵本山", "范伟", "宋丹丹", "高秀敏", "张三丰", "张无忌", "张伟"]

将所有姓张的人修改成姓王
解:

# for item in lst:  # 此时看不到元素的索引
for i in range(len(lst)):  # len(lst)列表的长度 ->  可以直接拿到列表索引的for循环
    item = lst[i]   # item依然是列表中的每一项
    if item.startswith("张"):
        new_name = "王"+item[1:]   # 把新名字丢回列表(需要索引)
        print(new_name)
        lst[i] = new_name
print(lst)

三、列表的其他操作

1. 列表排序

对列表进行升序排序

lst.sort()

翻转排序

lst.sort(reverse=True)

举例:
在这里插入图片描述

2. 列表的嵌套

列表可以无限循环嵌套,要找出嵌套中的某个元素,直接lst+一层层的中括号+元素位置即可
举例:找出列表中的123

lst = ["abc", "def", ["扣你鸡哇", "萨瓦迪卡", "思密达", ["cocacola", "fenta", 123]], "ghi", "jkl", " "]
print(lst[2][3][2])

给fenta变成大写

lst[2][3][1] = lst[2][3][1].upper()
print(lst)

3. 列表的循环删除

lst = ["赵敏", "张绍刚", "张无忌", "武则天", "嬴政", "马超"]
for item in lst:
    if item.startswith("张"):
        lst.remove(item)
print(lst)

用此种方法删除,会存在删不干净的情况,这个例子是删除列表中姓张的元素,按照此方法运行得到的结果如下:
在这里插入图片描述
可以看到元素“张无忌”,没有被删掉,原因是在指令执行过程中,当位置1的“张绍刚”被删除后,原本位置2的“张无忌”会顶替原本“张绍刚”的位置,而指令会继续执行下去,判断删除后位置2上的元素,也就是说“张无忌”从位置2变成位置1,恰好会被跳过,导致没有被删除。(bug,不报错)

安全稳妥的循环删除方式:
将要删除的内容保存在一个新列表中,循环新列表,删除老列表

lst = ["赵敏", "张绍刚", "张无忌", "武则天", "嬴政", "马超"]
temp = []   #准备临时列表,负责储存要删除的内容
for item in lst:
    if item.startswith("张"):
        temp.append(item)  # 把要删除的内容记录下来

for item in temp:
    lst.remove(item)  # 去原列表中进行删除操作
print(lst)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枯木逢春24

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值