python--组合数据类型(2.3)

107 阅读4分钟

删除列表元素

删除列表元素是一种常见的列表操作,它是指从一个列表中删除特定的元素或者所有的元素,使得列表中不再包含某元素或者任何元素。python中常用的删除列表元素的方式有del()语句、remove()方法、pop()方法、clear()方法。

1.del()语句

del()语句用于删除列表中指定位置的元素。示例代码:

names = ['小明''小红''小兰']
del names[0]
print(names)

运行结果:

['小红''小兰']

此外,del()语句也能删除整个列表,示例代码:

del names  #删除列表 names
print(names)

但此程序运行后会出现错误,是因为此操作后,python底层已经从命名空间删除了变量names,解除了变量names与列表的关联关系,并触发了垃圾回收机制,将不再使用的列表当垃圾回收,以后无法再访问变量names

2.remove()方法

remove()方法用于删除列表中某个元素,若列表中有多个匹配的元素,remove()只删除匹配到的第一个元素,示例代码:

chars = ['h','e','l','l','e']
chars.remove(e)
print(chars)

运行结果:

['h','l','l','e']

3.pop()方法

pop方法用于删除列表中指定位置的元素,并返回被删除的元素。若未指定具体元素,则该方法会删除列表中的最后一个元素。示例代码:

numbers = [1,2,3,4,5]
print(numbers.pop())
print(numbers.pop(1))
print(numbers)

运行结果:

5
2
[1,3,4]

注意:如果指定位置超出了列表长度,则会导致程序出错

4.clear()方法

clear()方法用于清空列表中的所有元素,将列表变为空列表。示例代码:

names = [1,2,3]
names.clear()
print(names)

运行结果:

[]

结果可以看出,names列表中没有任何元素,但names列表仍然存在

列表推导式

列表推导式是符合python语法规则的复合表达式,用于以简洁的方式根据已有的列表构建满足特定需求的列表。基本列表推导式的语法格式:

[表达式for临时变量in目标对象]

1. 列表推导式的基本构成

由表达式 + for语句组成:

  •  for语句 :负责遍历“可迭代对象”(如列表、字符串、元组),将每次遍历的元素赋值给临时变量。
  • 表达式:对临时变量做处理/计算(可以是变量、常量或含运算符的有效表达式)。

2. 列表推导式的执行逻辑

1. 先创建一个空列表; 2. 执行 for 语句遍历目标对象的元素,将元素赋值给临时变量; 3. 执行表达式,把处理结果添加到空列表; 4. 遍历结束后,返回生成的新列表。

示例代码:

ls = [1,2,3,4,5,6,7,8]
ls = [data * data for data in ls]  # 表达式是data*data,for遍历ls
print(ls) 

运行结果:

[1,4,9,16,25,36,49,64]

3. 列表推导式的扩展形式

可结合 if / if-else 语句、 for 循环嵌套,构成更复杂的推导式,实现更灵活的列表生成。

<1>带  if  语句的列表推导式

  • 语法格式:  [表达式 for 临时变量 in 目标对象 if 判断条件] 

  • 执行过程: 1. 遍历目标对象,把元素赋值给临时变量 2. 判断临时变量是否符合判断条件 3. 符合条件的,才用表达式处理/计算,结果加入新列表

  • 示例: 保留列表中大于4的元素

new_ls = [temp for temp in ls if temp > 4]

结果:只保留原列表里大于4的元素  

 

<2> 带  if-else  语句的列表推导式

  • 语法格式:  [表达式1 if 判断条件 else 表达式2 for 临时变量 in 目标对象] 

  • 执行过程: 1. 遍历目标对象,把元素赋值给临时变量 2. 符合判断条件 → 用表达式1处理 3. 不符合 → 用表达式2处理 4. 两种结果都加入新列表

  • 示例: 偶数保留,奇数加1

new_ls = [temp if temp % 2 == 0 else temp + 1 for temp in ls

结果:偶数不变,奇数+1后组成新列表  

 

✅ 核心总结:

  • 带 if 是筛选元素(只保留符合条件的)
  • 带 if-else 是处理所有元素(条件不同用不同表达式)

<3>带for循环嵌套的列表推导式

  • 语法格式:  [表达式 for 临时变量1 in 目标对象1 for 临时变量2 in 目标对象2] 
  • 循环顺序: 从左到右分别是外层循环( for 临时变量1 in 目标对象1 )和内层循环( for 临时变量2 in 目标对象2 ),即外层循环每遍历一个元素,内层循环会遍历完所有元素。
  • 示例: 两个列表元素两两相加(不是同位置,是所有组合相加)
ls_one = [1, 2, 3]
ls_two = [3, 4, 5]
ls_three = [x + y for x in ls_one for y in ls_two]
print(ls_three)

结果:  

 [4,5,6,5,6,7,6,7,8]

✅ 核心总结: 这种推导式是两层循环的组合,会生成两个目标对象元素的所有组合的处理结果,不是同位置匹配。