Python-两个列表之间的差异

罗布

出于练习目的,我试图实现一个函数,该函数接收两个列表作为参数并返回它们之间的差异。因此,基本上,列表中的元素并不相同。

我编写了以下函数:

list1 = [4,2,5,3,9,11]
list2 = [7,9,2,3,5,1]

def difference(list1,list2):
    return (list(set(list1) - set(list2)))

difference(list1,list2)

def difference_extra_credit(list1,list2):
    return [value for value in list1 if value not in list2]

difference(list1,list2)

->基本上,这两个代码似乎都可以工作,但我目前面临的问题是,列表必须具有相同的长度才能使函数正常工作。如果长度不相同,则在列表1中添加例如100的整数,如果您打印函数,则不会显示为列表之间的差异。

我没有设法找到一种方法来修改代码,以使列表的长度无关紧要。有人有想法吗?

谢谢!

埃文·基顿

试用您的代码,无论列表的长度如何,它似乎都可以正常工作-当我添加100到时list1,它对于两个不同的函数都显示出来。

但是,您的代码似乎存在一些问题,可能会导致这些问题。首先,你接受参数list1list2两种功能,但这些变量是相同的名称列表变量。这似乎不会引起问题,但是这意味着不再可以访问全局变量,通常最好的做法是通过对全局变量和函数内的变量使用不同的名称来避免混淆。

此外,您的函数不会产生对称差-它仅循环遍历第一个列表中的变量,因此不会计算第二个列表中的唯一变量。要轻松地解决这个问题,你可以添加一行您的清单合并成一笔单,然后遍历是整个列表检查,如果每个值仅在其中一个列表-这将用^做一个xor变量与否的比较在两个列表中,因此true如果它在列表之一中,则返回可以这样完成:

def difference_extra_credit(l1,l2):
    list  = l1 + l2
    return [value for value in list if (value in l1) ^ (value in l2)]

我自己测试此功能已生成列表[4, 11, 7, 1],并且将[4, 11, 100, 7, 1]if100添加到list1或中list2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找数组的两个列表之间所有不同的交集和差异的Python方法

Python中两个日期之间的差异

Python中两个日期之间的差异

计算python中两个列表的元素之间的差异

如何在Python中获得两个时间对象之间的差异

Python Pandas:两个星期之间的日期差异?

python pandas:groupby中两个日期之间的差异

python-两个Unix时间戳之间的差异

查找两个Python对象之间的差异

计算两个日期之间的差异MySQL / Python

两个列表之间的Python多重条件

想要找到不同日期格式的两个日期之间的天数差异(Python)

获取两个列表之间的初始差异的Python方法

python设置为采用两个文件之间的名称值差异

从Python中的两个不同列表计算差异

Python生成两个日期之间的日期列表

使用Python在Excel中返回两个不同文件中两列之间的差异

计算Python中两个小时变量之间的差异

在Python中获取两个Unix日期之间的差异

两个日期之间的Python差异

txt文件,python中两个值之间的差异

在python中获取两个列表之间的差异,如果它们具有相同的值,则将其打印出来

比较python中的两个列表并打印差异

在Python中比较两个列表列表,并找出具有相同索引的列表之间的差异

在python中的两个列表之间交换两个元素

如何利用两个列表之间的差异将第一个转换为第二个?Python

在Python中找到两个列表之间的对称差异时如何保持顺序?

两个嵌套列表之间的双射函数(Python)

找到在 Python 中给出两个列表之间第二大差异的索引