当前位置: 首页 > 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.jsqmd.com/news/852921/

相关文章:

  • 2026年滑台品牌推荐:精度与性价比测评,优质滑台品牌选型指南 - 资讯速览
  • 兰州儿童摄影推荐:2026五大靠谱门店梯队排行榜 - 江湖评测
  • 创业团队如何利用Taotoken以可控成本快速上线AI功能
  • 2026年5月江苏工程优选1.0mmHDPE/短纤复合/短丝复合/防渗复合土工膜供应商深度解析 - 2026年企业推荐榜
  • 华侨城 Oracle EBS 会计科目表(COA)段结构深度拆解
  • Midjourney镜头类型选择终极决策树(附可下载PDF流程图):输入拍摄意图→自动匹配最优镜头词+推荐--stylize值+规避AI视觉歧义
  • hcxdumptool实战指南:5大高效技巧提升无线网络安全检测效率
  • 别再只用CIoU了!手把手教你用WIoU损失函数提升YOLOv5/v8模型精度(附代码对比)
  • 宠物寄养行业如何做线上推广获客?2026全网获客指南与服务商盘点 - 优质企业观察收录
  • OpenClaw 配置 QQ 机器人详细步骤(图文版)
  • OA办公系统如何做线上推广获客?2026全网营销指南与服务商盘点 - 年度推荐企业名录
  • 提前两小时,救一条命——从约翰·霍普金斯AI败血症预警系统看AI医疗的工程化之路
  • 国产电池包传感监测芯片:从AFE设计到BMS系统实战解析
  • 2025_NIPS_TradeMaster: A Holistic Quantitative Trading Platform Empowered by Reinforcement Learning
  • 家具厂商如何突破实木加工效率瓶颈?五轴加工中心供应商万邦数控给出答案 - 资讯速览
  • 频谱分析‘显微镜’:手把手教你用Python实现Chirp-Z变换(附完整代码与避坑指南)
  • 实战手册:三小时精通waifu2x-caffe深度图像修复技术
  • 常用工具清单
  • 室内空气质量检测仪厂家常见问题解答(2026专家版) - 资讯速览
  • 毕业答辩 PPT 还在熬夜改?Paperxie 用 AI 帮你一键搞定专业答辩演示
  • WPS 配置优化
  • 半导体和普通二极管
  • 【Go 时间类型】 int64/time.Time的选择
  • 【HarmonyOS 6.0】Device Security Kit 病毒防护服务管理能力解析
  • 安徽抖音本地生活实体陪跑机构:定义、机制与靠谱选择指南 - 资讯焦点
  • iOS种子下载终极指南:iTorrent让你的iPhone变身专业下载中心
  • WzComparerR2完整指南:如何轻松提取和分析冒险岛游戏资源
  • 2026武功山周边特色餐厅技术拆解:游客用餐适配指南 - 资讯焦点
  • 2026水果店加盟选哪家?从产品矩阵到运营支持深度解析 - 品牌排行榜
  • DeepSeek OAuth 接口响应延迟突增400%?我们用eBPF追踪定位了底层PKCE握手瓶颈