当前位置:首页 > 科技  > 软件

Python小技巧:判断一个列表是否包含另一个列表的全部元素

来源: 责编: 时间:2023-09-20 21:55:07 460观看
导读你应该遇到过需要判断一个列表是否包含另一个列表的全部元素的场景吧。这种需求在实际工作中非常常见,比如在数据筛选、列表匹配以及集合操作等。下面勇哥给大家分享三个日常使用到的小技巧。方法一:使用all函数和生成

你应该遇到过需要判断一个列表是否包含另一个列表的全部元素的场景吧。这种需求在实际工作中非常常见,比如在数据筛选、列表匹配以及集合操作等。下面勇哥给大家分享三个日常使用到的小技巧。mv728资讯网——每日最新资讯28at.com

mv728资讯网——每日最新资讯28at.com

方法一:使用all函数和生成器表达式

例如从一个大的数据列表中选取满足特定条件的子集。勇哥举个例子:我们需要从一个商品列表中筛选出库存充足的商品:mv728资讯网——每日最新资讯28at.com

def contains(list1, list2):    return all(item in list1 for item in list2)# 筛选库存充足的商品product_list = [{'name': 'Apple', 'stock': 10}, {'name': 'Banana', 'stock': 5}, {'name': 'Orange', 'stock': 8}]required_products = ['Apple', 'Banana']if contains([product['name'] for product in product_list], required_products):    print("有库存")else:    print("有库存不足的商品")# 输出 :有库存

方法二:使用set函数和集合运算

对两个集合进行操作,例如求并集、交集或差集,这种也是很实用且常用。再举个栗子:判断用户的兴趣爱好是否与某个活动的标签相匹配:mv728资讯网——每日最新资讯28at.com

# 1. 内置函数def contains(list1, list2):    return set(list2).issubset(set(list1))# 2. 操作符def contains2(list1, list2):    return set(list2) <= set(list1)user_interests = ['篮球', '游泳', '登山', '音乐']event_tags = ['篮球', '足球', '音乐']if contains(user_interests, event_tags):    print("完全匹配")else:    print("不完全匹配")if contains2(user_interests, event_tags):    print("完全匹配")else:    print("不完全匹配")# 输出: 不完全匹配

方法三:嵌套循环

有时候会遇到一些特殊的场景,比如:需要自定义复杂的条件判断逻辑来判断列表之间的关系,这时候用上面两种方法不太方便,我们就可以遇事不决先循环一波试试了。最后一个栗子:判断两个任务列表的优先级是否一致:mv728资讯网——每日最新资讯28at.com

def list_contains(List1, List2):    if len(List1) != len(List2):        return False    for task1, task2 in zip(List1, List2):        if task1['priority'] != task2['priority']:            return False    return Truetasks_1 = [{'name': 'Task 1', 'priority': 1}, {'name': 'Task 2', 'priority': 2}]tasks_2 = [{'name': 'Task 3', 'priority': 1}, {'name': 'Task 4', 'priority': 2}]if list_contains(tasks_1, tasks_2):    print("两个任务列表的优先级一致")else:    print("两个任务列表的优先级不一致")# 输出:优先级一致

以上就是勇哥分享的三种简单实用的处理数据的思路及示例代码,当然如果小伙伴们遇到嵌套比较深可能需要全比对的数据或者更复杂的数据要处理的时候,就可以自由的扩展方法或者另辟蹊径了。mv728资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-10590-0.htmlPython小技巧:判断一个列表是否包含另一个列表的全部元素

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 极速Python编程:利用缓存加速你的应用程序

下一篇: C++ 里 ++i 是原子操作吗?

标签:
  • 热门焦点
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 一年经验在二线城市面试后端的经验分享

    忠告这篇文章只适合2年内工作经验、甚至没有工作经验的朋友阅读。如果你是2年以上工作经验,请果断划走,对你没啥帮助~主人公这篇文章内容来自 「升职加薪」星球星友 的投稿,坐
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 电视息屏休眠仍有网络上传 爱奇艺被质疑“薅消费者羊毛”

    记者丨宁晓敏 见习生丨汗青出品丨鳌头财经(theSankei) 前不久,爱奇艺发布了一份亮眼的一季报,不仅营收和会员营收创造历史最佳表现,其运营利润也连续6个月实现增长。自去年年初
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 余承东:AI大模型技术的发展将会带来下一代智能终端操作系统的智慧体验

    8月4日消息,2023年华为开发者大会(HDC.Together)今天正式开幕,华为发布HarmonyOS 4、全新升级的鸿蒙开发套件、HarmonyOS Next开发者预览版本等一系列
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top