当前位置: 首页 > news >正文

Python初学者项目练习28--移除列表中的多个元素

一、练习题目

定义一个函数,该函数用于从第一个列表list1中移除所有存在于第二个列表list2中的元素

二、代码

1.初始版本

代码如下:

defremove_number(list1,list2):fori inrange(list1):forj inrange(list2):ifi==j:list1.remove(j)returnlist1 list1=[1,2,5,8,10,8,45,78,99,123,56]list2=[3,6,8,10,78,56]print(remove_number(list1,list2))

TypeError: ‘list’ object cannot be interpreted as an integer
问题:range()里传了列表
range()需要的是整数,比如 range(10),而不是 [1, 10]

2.优化版本

代码如下:

defremove_number(list1,list2):fori in list2:ifi in list1:list1.remove(i)returnlist1 list1=[1,2,5,8,10,8,45,78,99,123,56]list2=[3,6,8,10,78,56]print(f"从列表{list1}中移除元素{list2}的结果为:{remove_number(list1, list2)}")

输出:
从列表[1, 2, 5, 8, 10, 8, 45, 78, 99, 123, 56]中移除元素[3, 6, 8, 10, 78, 56]的结果为:[1, 2, 5, 8, 45, 99, 123]

问题: list1里面有2个重复元素和list2相同,但是remove只删除了第一个相同的元素

3.优化版本

代码如下:

# 列表表达式 defremove_number(list1,list2):return[ifori in list1ifi not in list2]list1=[1,2,5,8,10,8,45,78,99,123,56]list2=[3,6,8,10,78,56]print(f"从列表{list1}中移除元素{list2}的结果为:{remove_number(list1, list2)}")

采用列表表达式
输出:
从列表[1, 2, 5, 8, 10, 8, 45, 78, 99, 123, 56]中移除元素[3, 6, 8, 10, 78, 56]的结果为:[1, 2, 5, 45, 99, 123]


总结

  1. for i in range(起始,终止,步长)
    for i in list1
    for i in range(len(list1))

  2. 列表表达式
    [输出表达式 for 变量 in 可迭代对象 if 条件]
    [i for i in list1 if i not in list2]

    例如:
    result = []
    for i in range(5):
    result.append(i * 2)

    换成列表表达式:
    result = [i * 2 for i in range(5)]

  3. 列表常用函数操作

  4. 列表常用方法操作
    4.1 增加

    4.2 删除

    4.3 统计查找

    4.4 改序

  5. 对比函数与方法

✅ 函数:
len / max / min / sum / sorted / list / enumerate / zip​

✅ 方法:
append / extend / insert / remove / pop / clear / index / count / sort / reverse

http://www.cnnetsun.cn/news/2477665.html

相关文章:

  • Java工业视觉全栈实战:DJL部署YOLOv12+JavaCV实时采集+7x24h生产级稳定性方案
  • Linux服务器无GUI?试试用LibreOffice命令行批量把Word转PDF,效率翻倍!
  • 小米手表表盘设计终极指南:如何用Mi-Create打造专属个性表盘
  • 手把手教你学Simulink——电动汽车防溜坡功能中的电机零扭矩闭环保持控制仿真
  • 物业报修流程繁琐?智慧物业数字化转型实用方案
  • Midjourney订阅决策模型(2024官方API+GPU算力实测数据版)
  • 3分钟掌握:Windows电脑上安装安卓应用的终极解决方案
  • Linux手动打补丁全攻略:diff/patch工具详解与Git工作流实践
  • G-Helper终极指南:如何用轻量级软件完全掌控你的华硕笔记本
  • VARCHAR(50) vs VARCHAR(500):存储一样大,排序却慢了 3 倍
  • Windows安卓应用安装器:3分钟快速上手APK安装器完整指南
  • AI时代劳动力市场的结构性变革
  • YOLOv11【第四章:巅峰前沿与融合篇·第17节】联邦学习 YOLOv11:多机构隐私保护联合训练!
  • 在 Taotoken 模型广场中根据任务与预算进行多模型选型的思路
  • 深入Activiti 5.22内核:从命令模式与拦截器链看流程引擎的执行机制
  • Flutter 3.29.3+ 项目实战:用 amap_map 插件搞定高德地图与定位(保姆级避坑指南)
  • 【程序源代码】穿越红楼趣味人格测试微信小程序系统(含源码)
  • 新加坡 ONE Pass 与香港高才通对比:2027年海外名校生直接落户亚太双子星的 ROI 算账
  • 从模型网关到智能体平台
  • Vue3 + TS项目里Element Plus图标死活不显示?别慌,这5个排查步骤帮你搞定
  • 保姆级教程:用Simulink Embedded Coder生成可部署的嵌入式C代码(附避坑指南)
  • 2026年热门录音实时转文字软件盘点:如何选择适合你的转写工具?
  • 嵌入式系统软硬件本质重构:从思维固化到构件化设计
  • 快速傅里叶变换(FFT)原理与工程实践:从算法内核到音频、振动分析应用
  • KMS智能激活工具终极指南:三步永久激活Windows和Office的完整解决方案
  • 用HC-SR501和LM358给18650电池供电的感应灯做个“大脑”:手把手教你设计驱动电路
  • 别再只懂翻转和裁剪了!聊聊Mixup、CutMix这些花式数据增强,到底怎么选?
  • 如何在macOS上享受完美的歌词同步体验:LyricsX全方位指南
  • 企业AI算力工作站/深度学习推理工作站DLTM零代码私有化重塑智慧农业AI模型训练体系
  • 从零构建:基于YOLOv8/YOLOv10的智能游戏瞄准系统深度解析