【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月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
289 4
|
索引 Python
Python错误 - 'list' object is not callable 的问题定位与解决
出现编程问题并不可怕,关键在于是否可以从中学习与成长。遇到'list' object is not callable这样的错误,我们不仅需要学会应对,更需要了解其背后的原因,避免类似的问题再次出现。记住,Python的强大功能和灵活性同时也意味着我们需要对其理解更准确,才能更好的使用它。
1468 70
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
533 14
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
358 9
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
1516 10
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
315 1
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
494 7
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
301 0
【python】python指南(五):静态类型注解之List
|
索引 Python
Python列表操作-推导式(List Comprehension)
Python列表操作-推导式(List Comprehension)
1121 0

推荐镜像

更多
下一篇
开通oss服务