【python】list比较操作

简介: python中list比较操作

1.相等比较

1.1 同顺序列表比较

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

list1 = ["1.jpg","2.jpg","3.jpg"]
list2 = ["1.jpg","2.jpg","3.jpg"]

res = list1 == list2
print(res) # True
1.2 不同顺序列表比较

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

list1 = ["1.jpg","2.jpg","3.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg"]

res = list1 == list2
print(res) # False
1.2.1 使用列表sort()方法进行排序后比较
list1 = ["1.jpg","2.jpg","3.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg"]

list1.sort()==list2.sort()  #  True
print(list2)  # ["1.jpg","2.jpg","3.jpg"]
1.2.2使用sorted()方法进行排序后比较

上面的sort()方法会对列表成员进行重排,但有时候我们并不希望列表本身被改动。
我们可以用一下变量将原先的列表保存起来,但更好的做法是使用sorted()方法,sorted()不改变列表原本顺序而是新生成一个排序后的列表并返回。

list1 = ["1.jpg","2.jpg","3.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg"]

sorted(list1)==sorted(list2)  #  True
print(sorted(list2))  # ["1.jpg","2.jpg","3.jpg"]

2.包含比较

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

2.1 判断列表是否包含另一列表
list1 = ["1.jpg","2.jpg","3.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg","4.jpg"]

set(list1).issubset(set(list2))    #  True
set(list2).issuperset(set(list1))  #  True
2.2 获取两个列表相同成员(交集)
list1 = ["1.jpg","2.jpg","3.jpg","5.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg","4.jpg"]

set(list1).intersection(set(list2)) # {'1.jpg', '2.jpg', '3.jpg'}
2.3 获取两个列表所有成员(并集)
list1 = ["1.jpg","2.jpg","3.jpg","5.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg","4.jpg"]

set(list1).union(set(list2)) # {'1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg'}
2.4 获取一个列表中不是另一个列表成员的成员(差集)
list1 = ["1.jpg","2.jpg","3.jpg","5.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg","4.jpg"]

set(list1).difference(set(list2)) # {'5.jpg'}
set(list2).difference(set(list1)) # {'4.jpg'}
2.5 获取两个列表不同成员
list1 = ["1.jpg","2.jpg","3.jpg","5.jpg"]
list2 = ["1.jpg","3.jpg","2.jpg","4.jpg"]

set(list1).symmetric_difference(set(list2)) # {'4.jpg', '5.jpg'}

参考
https://www.runoob.com/python3/python3-set.html

https://www.cnblogs.com/lsdb/p/10275657.html

相关文章
|
6天前
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
18天前
|
索引 Python
Python列表操作-推导式(List Comprehension)
Python列表操作-推导式(List Comprehension)
15 0
|
27天前
|
Python
Python量化炒股的获取数据函数— get_billboard_list()
Python量化炒股的获取数据函数— get_billboard_list()
32 0
|
2月前
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
47 7
|
2月前
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
33 0
【python】python指南(五):静态类型注解之List
|
3月前
|
存储 监控 数据处理
💻Python高手必备!文件系统操作秘籍,让你的数据存取如臂使指
【7月更文挑战第29天】在数据驱动时代, Python以简洁语法、丰富库生态和强大跨平台能力, 成为数据科学等领域首选。本文探讨Python文件系统操作秘籍, 助力高效数据处理。
46 11
|
3月前
|
安全 数据安全/隐私保护 Python
|
3月前
|
监控 网络协议 网络安全
SMTP操作使用详解并通过python进行smtp邮件发送示例
SMTP操作使用详解并通过python进行smtp邮件发送示例
101 3
|
3月前
|
数据挖掘 数据处理 Python
🔍深入Python系统编程腹地:文件系统操作与I/O管理,打造高效数据处理流水线
【7月更文挑战第29天】深入Python系统编程腹地:文件系统操作与I/O管理,打造高效数据处理流水线
33 3