翼度科技»论坛 编程开发 python 查看内容

Python列表差异值统计:集合操作、列表推导式、对称差集详解

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
 
在Python中,统计两个列表的差异值有多种方法,其中包括使用集合操作、列表推导式等。下面我将通过实例详细讲解几种常见的方法,并提供相应的实例源代码。
方法一:使用集合操作
  1. list1 = [1, 2, 3, 4, 5]
  2. list2 = [3, 4, 5, 6, 7]
  3. # 找到在list1中而不在list2中的元素
  4. difference1 = list(set(list1) - set(list2))
  5. # 找到在list2中而不在list1中的元素
  6. difference2 = list(set(list2) - set(list1))
  7. # 输出差异值
  8. print("List1 中不在 List2 中的元素:", difference1)  # 输出 [1, 2]
  9. print("List2 中不在 List1 中的元素:", difference2)  # 输出 [6, 7]
复制代码
方法二:使用列表推导式
  1. list1 = [1, 2, 3, 4, 5]
  2. list2 = [3, 4, 5, 6, 7]
  3. # 保持顺序找到在list1中而不在list2中的元素
  4. difference1 = [x for x in list1 if x not in list2]
  5. # 保持顺序找到在list2中而不在list1中的元素
  6. difference2 = [x for x in list2 if x not in list1]
  7. # 输出差异值
  8. print("List1 中不在 List2 中的元素:", difference1)  # 输出 [1, 2]
  9. print("List2 中不在 List1 中的元素:", difference2)  # 输出 [6, 7]
复制代码
方法三:使用set()和对称差集
  1. list1 = [1, 2, 3, 4, 5]
  2. list2 = [3, 4, 5, 6, 7]
  3. # 找到两个列表中不同的元素(对称差集)
  4. symmetric_difference = list(set(list1) ^ set(list2))
  5. # 输出差异值
  6. print("两个列表中不同的元素:", symmetric_difference)  # 输出 [1, 2, 6, 7]
复制代码
这些方法各有优缺点,选择使用哪一种取决于你的具体需求和性能考虑。方法一和方法三使用了集合操作,可能在处理大型数据时更高效。方法二保持了原始列表的顺序,但在大型数据集上可能效率较低。
 


来源:https://www.cnblogs.com/hanbing81868164/p/17965994
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具