Python3列表(list)比较操作教程

2023-05-16

一、相等比较

1.1 同顺序列表比较

顺序相同直接用“==”进行比较即可


list1 = ["one","two","three"]
list2 = ["one","two","three"]
list1 == list2  

 

2.1 不同顺序列表进行比较

“==”只有成员、成员位置都相同时才返回True,但有时候我们希望只要成员相同、即使成员位置不同也能返回True。

 

2.1.1 使用列表sort()方法进行排序后比较

列表本身有sort()内置方法,可对自身成员进行排序;注意sort()方法对自身造成改变。


list1 = ["one","two","three"]
list2 = ["one","three","two"]
list1.sort() == list2.sort()
print(list1)  

 

2.1.2 使用sorted()方法进行排序后比较

上一小节介绍的sort()方法会对列表成员进行重排,但有时候我们并不希望列表本身被改动。

我们可以用一下变量将原先的列表保存起来,但更好的做法是使用sorted()方法,sorted()不改变列表原本顺序而是新生成一个排序后的列表并返回。


list1 = ["one","two","three"]
list2 = ["one","three","two"]
sorted(list1) == sorted(list2)
print(list1)
sorted(list1)  

 

二、包含比较

直接用列表本身进行包含类比较,只能用遍历的方法这是比较麻烦的,使用set()转成集合进行包含比较就简单多了。

 

2.1 判断列表是否包含另一列表


list1 = ["one","two","three"]
list2 = ["one","three","two","four"]
set(list1).issubset(set(list2))
set(list2).issuperset(set(list1))  

 

2.2 获取两个列表相同成员(交集)


list1 = ["one","two","three","five"]
list2 = ["one","three","two","four"]
set(list1).intersection(set(list2))  

 

2.3 获取两个列表不同成员


list1 = ["one","two","three","five"]
list2 = ["one","three","two","four"]
set(list1).symmetric_difference(set(list2))  

 

2.4 获取一个列表中不是另一个列表成员的成员(差集)


list1 = ["one","two","three","five"]
list2 = ["one","three","two","four"]
set(list1).difference(set(list2))
set(list2).difference(set(list1))  

 

2.5 获取两个列表所有成员(并集)


list1 = ["one","two","three","five"]
list2 = ["one","three","two","four"]
set(list1).union(set(list2))  

 

参考:

https://stackoverflow.com/questions/9623114/check-if-two-unordered-lists-are-equal

https://stackoverflow.com/questions/3847386/testing-if-a-list-contains-another-list-with-python

http://www.runoob.com/python3/python3-set.html

转载于:https://www.cnblogs.com/lsdb/p/10275657.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3列表(list)比较操作教程 的相关文章

  • 列表中小于给定数字的数字

    xMenores xMenores X H T R Z xMenores X T Z X gt H R is H xMenores采用三个参数 第一个是数字 第二个是数字列表 第三个是一个列表 是将包含结果的变量 规则的目标xMenores
  • 为什么 LinkedList 通常比 List 慢?

    我开始在我的一些 C 算法中使用一些 LinkedList 而不是列表 希望能够加快速度 然而 我注意到他们只是感觉更慢 像任何优秀的开发人员一样 我认为我应该尽职调查并验证我的感受 所以我决定对一些简单的循环进行基准测试 我认为用一些随机
  • Python - 为什么这段代码被视为生成器?

    我有一个名为 mb 的列表 其格式为 Company Name Rep Mth 1 Calls Mth 1 Inv Totals Mth 1 Inv Vol Mth 2 等等 在下面的代码中 我只是添加了一个包含 38 个 0 的新列表 这
  • 找出对象列表中是否包含具有指定字段值的内容?

    我有一个从数据库收到的 DTO 列表 它们有一个 ID 我想确保我的列表包含具有指定 ID 的对象 显然 在这种情况下创建具有预期字段的对象不会有帮助 因为 contains 调用 Object equals 并且它们不会相等 我想出了这样
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • 如何在循环列表本身时删除列表元素而不重复它

    我在这个 Python for 语句中浪费了一点时间 class MyListContainer def init self self list def purge self for object in self list if objec
  • Dart 中的 DoubleLinkedQueue 和 ListQueue 有什么区别?

    Dart 核心 API 有两个类实现Queue
  • 计算列表的累积和,直到出现零

    我有一个 长 列表 其中随机出现零和一 list a 1 1 1 0 1 1 0 1 0 1 1 1 我想获取 list b 列表中出现 0 之前的总和 出现0的地方 在列表中保留0 list b 1 2 3 0 1 2 0 1 0 1 2
  • 从字符串数组中删除项目

    我有一个包含如下数据的数据库字段 76 60 12 例如 如果我想删除60 我该怎么办 要删除的号码可以是任何地方 如果需要的话 我还需要删除逗号 我正在使用 NET 2 0 我会用逗号分割字符串 删除元素 然后再次连接字符串 希望这一切都
  • 生成字符串及其子字符串列表的排列的算法

    我已经忘记这个算法有一段时间了 假设我得到了字符串 cccaatt 我试图生成重复字母的每个子串的所有可能变体 EG cccaatt 作为输入将返回 猫 卡特 猫 卡特 ccat 卡特 卡特彼勒 卡特彼勒 cccat cccat cccaa
  • JSON 列表中元素的顺序是否保留?

    我注意到 JSON 对象中元素的顺序不是原始顺序 JSON 列表的元素怎么样 他们的秩序是否得到维持 是的 JSON 数组中元素的顺序会被保留 从RFC 7159 JavaScript 对象表示法 JSON 数据交换格式 https www
  • LISP 非常简单的列表问题

    我正在学习 lisp 而且我对此还很陌生 所以我想知道 如果我这样做 defparameter list 1 list 1 2 defparameter list 2 list 2 3 defparameter list 3 append
  • 如何对 glob.glob 进行数字排序?

    我在一个文件夹中有一堆按数字排序的文件 当我尝试对 glob glob 进行排序时 我从来没有以正确的顺序获得文件 文件示例和预期输出排序 folder C Users user Desktop folder 1 sample mp3 C
  • 在 python 中高效、快速地迭代元组列表中超过 3600 万个项目

    首先 在任何人将其标记为重复之前 请阅读以下内容 我不确定迭代的延迟是否是由于尺寸巨大或我的逻辑造成的 我有一个必须迭代的用例3600 万件商品在元组列表中 我的主要要求是速度和效率 样本清单 how are you I am fine h
  • 在Python中将字符串转换为字典或列表?

    在Python中将此字符串转换为列表或字典 u f i r s t n a m e u j o h n u l a s t n a m e u s m i t h u a g e 2 0 u m o b
  • 如何使用流从两个列表或数组乘法中查找元素对

    我有两个数字列表 我想找到所有可能的数字对 例如 给定列表 1 2 3 and 3 4 结果应该是 1 3 1 4 2 3 2 4 3 3 3 4 我知道我可以使用for loop但有没有更简洁的方法来使用Java 8 流 我尝试了以下操作
  • 将嵌套列表转换为嵌套列表

    我知道可以将项目列表从一种类型转换为另一种类型 但是如何将嵌套列表转换为嵌套 List 已经尝试过的解决方案 List
  • 使用部分函数短路列表映射

    因此 我创建了一个名为 tryMap 的函数 如下所示 tryMap with failure and success continuations let rec tryMapC R gt U list gt R gt T gt U opt
  • java交叉连接两个列表

    我有一个 ABC 类 其中包含两个整数字段 public class ABC private Integer x private Integer y getters and setters 我有两个列表 xValues 和 yValues
  • 用于列出文件夹但排除特定文件夹的批处理脚本

    我希望此脚本列出文件夹名称中包含 deleted 的所有文件夹 但如果它们位于名为 done 的文件夹中则不列出 例如 列出文件夹 如果位于 C temp如果它在C temp random folder name但如果它在C temp do

随机推荐

  • iOS中实现多线程的技术方案

    pthread 实现多线程操作 代码实现 xff1a void run void param for NSInteger i 61 0 i lt 1000 i 43 43 NSLog 64 34 buttonclick zd 64 34 i
  • linux inode 详解 / 线上inode爆满解决方案

    linux inode 详解 线上inode爆满解决方案 本文大量参考阮一峰大神博客 xff0c 整理笔记 之所以写inode文章是由于一次线上问题 xff0c 引发对inode深入的思考 磁盘的inode监控与磁盘空间的监控同等重要 xf
  • vscode调整字体大小

    在vscode中 xff0c 通过setting gt User gt Text Editor gt Font可以调整字体大小 xff0c 但是这里只是调整右侧的代码编辑区域的字体 xff0c 左侧的侧边栏确无法调整字体大小 xff0c 找
  • MyBatis分页插件PageHelper自定义分页逻辑实现

    因为PageHelper对于MySQL的分页逻辑采用的是SQL后面追加limit子句的方式 xff0c 这样在小数据量情况下是没有问题的 但是对于大数据量的时候 xff0c 比如limit 100000 10 xff0c MySQL的运作机
  • 使用estimatedRowHeight的优缺点

    使用estimatedRowHeight的优缺点 1 优点 1 gt 可以降低tableView heightForRowAtIndexPath 方法的调用频率 2 gt 将 计算cell高度的操作 延迟执行了 xff08 相当于cell高
  • 用红蓝3D眼镜在PC上观看3D影片效果并不好

    如题 xff0c 最近试了一下买了副红蓝分色3D眼镜 结果戴上以后放3D蓝光盘只有在画面的静态部分才能正确融像 xff0c 画面上的物体一动起来马上两个像就不能正确融合 xff0c 而是红色部分和蓝色部分直接混在一起闪来闪去 网上找了一圈
  • python----面向对象

    一 面向过程和面向对象优缺点 面向过程 xff1a 优点 xff1a 极大的降低了写程序的复杂度 xff0c 只需要顺着要执行的步骤 xff0c 堆叠代码即可 缺点 xff1a 一套流水线或者流程就是用来解决一个问题 xff0c 代码牵一发
  • Sublime Text Build 3176 安装图文详细教程

    1 著作权声明 1 1 本图文详细教程为 推优创意 原创教程 xff0c 推优创意 拥有著作权 xff0c 未经本人许可 xff0c 谢绝任何形式的全部或部分转载 xff01 违者必究 xff01 1 2 所有文章在 微信公众号 64 推优
  • iOS开发——纯代码界面(UITableViewController)

    创建UITableViewController xff08 表视图控制器 xff09 创建一个类TableViewController继承UITableViewController 1 AppDelegate m中代码如下 xff08 记得
  • iOS-CoreData详解与使用

    上面已经说完了SQLite和FMDB以及两者的区别 xff0c 本篇将讲述iOS中另一个存储方式 xff0c CoreData的使用 通读下来大约10分钟 xff0c 后续还会根据项目中问题 xff0c 不断更新 一 预备知识 在了解Cor
  • Verilog中变量位宽注意

    Verilog中 xff0c 变量定义方式可以为 xff1a reg 位宽 1 0 数据名 xff1b reg 位宽 1 数据名 其他变量也类似 以reg变量cnt为例 xff0c 当cnt位宽为4时 xff0c 可定义为reg 3 0 c
  • 使用PaintCode便捷地实现动画效果

    ViewController m paintCodeTestOC Created by LongMa on 2019 7 25 import 34 ViewController h 34 64 interface ViewControlle
  • 定位地图

    1 在iOSApp开发中 xff0c 尤其是O2O类型的的App往往包含着定位或地图这两项功能 xff0c 所以说定位和地图是iOS开发中一种常用的第三方 xff08 iOS自带高德地图 xff09 2 定位 xff1a 首先我们先来说说定
  • EXCEL中,将十六进制转换为十进制

    一 背景 1 在EXCEL表格中 xff0c 将十六进制转换为十进制的常用方法是 xff1a 使用HEX2DEC函数 2 在EXCEL的一个单元格中 xff0c 如果输入形如 34 12E36 34 之类的可以被成功识别为 科学计数法 的文
  • 关于Linux CentOS 7 中文字体安装过程心得

    一 CentOS 7 中查看现有字库 1 查看系统正在使用的语言 echo LANG en US UTF 8 2 查看系统当下所有语言环境 locale LANG 61 en US UTF 8 LC CTYPE 61 34 en US UT
  • 通过 edu 邮箱登录 Office 365 获得 1 TB 的 OneDrive 空间的方法

    要求 xff1a 你是在读大学生或高校 科研院所的教职员 1 在你就读或就业的高校或科研机构的官方网站上注册 edu 邮箱 2 登录 https www office com xff0c 用该邮箱登录 3 登录后即可启用 Office 教育
  • sqlserver 插入 更新 删除 语句中的 output子句

    官方文档镇楼 xff1a https docs microsoft com zh cn previous versions sql sql server 2008 ms177564 v 61 sql 100 从sqlserver 2005开
  • codeblocks常用快捷键

    codeblocks常用快捷键 CodeBlocks常用操作快捷键 编辑部分 xff1a Ctrl 43 A xff1a 全选 Ctrl 43 C xff1a 复制 Ctrl 43 X 剪切 Ctrl 43 V xff1a 粘贴 Ctrl
  • 1605 迷宫

    难度 xff1a 普及 题目类型 xff1a 深搜 提交次数 xff1a 1 涉及知识 xff1a 深搜 题目背景 迷宫 问题描述 给定一个N M方格的迷宫 xff0c 迷宫里有T处障碍 xff0c 障碍处不可通过 给定起点坐标和 终点坐标
  • Python3列表(list)比较操作教程

    一 相等比较 1 1 同顺序列表比较 顺序相同直接用 61 61 进行比较即可 list1 61 34 one 34 34 two 34 34 three 34 list2 61 34 one 34 34 two 34 34 three 3