找出两个列表之间的差异并创建一个零一列表

米皮索斯·迪米特里斯

我正在尝试创建一个函数,该函数接受两个列表比较它们并返回一个列表,该列表显示第一个列表与另一个列表的不同之处。一些示例如下:

  • 示例 1:

    list1: [1, 2, 3]
    list2: [1, 3]
    desired result: [0, 1, 0]     
    
  • 示例 2

    list1: [1, 3, 1, 2, 4]
    list2: [1, 1, 4]
    desired result: [0, 1, 0, 1, 0]
    
  • 示例 3

    list1: [3, 5, 2, 9, 9]
    list2: [3, 5, 9, 9]
    desired result: [0, 0, 1, 0, 0]
    
  • 示例 4

    list1: [1, 1, 1]
    list2: [1]
    desired result: [0, 1, 1]
    
  • 例 5

    list1: [1, 2, 2, 1]
    list2: [1, 2, 1]
    desired result: [0, 0, 1, 0]
    

一些事实:

  • list1 总是大于或等于 list2
  • desired list 有长度 list1
  • 所需列表中的 1 的数量等于两个列表的长度差。

我很抱歉我没有提供任何答案,但我想不出任何方法来实现这一点。任何指导/提示?

罗布ᵩ

这是我的尝试:

def compute_difference(list1, list2):
    result = []
    iter1 = iter(list1)
    for item2 in list2:
        for item1 in iter1:
            if item2 == item1:
                result.append(0)
                break
            else:
                result.append(1)
    for item1 in iter1:
        result.append(1)

    return result

assert compute_difference([1,2,3],[1,3]) == [0, 1, 0]
assert compute_difference([1, 3, 1, 2, 4], [1, 1, 4]) == [0, 1, 0, 1, 0]
assert compute_difference([3, 5, 2, 9, 9], [3, 5, 9, 9]) == [0, 0, 1, 0, 0]

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

找出两个列表之间的差异

如何找出两个元素是否属于同一列表

从两个唯一列表创建字典列表

合并两个列表以组成一个唯一列表(基于某些字段逻辑)

从两个列表创建一个元组列表

Java:两个列表之间的差异

获得两个列表之间的差异

名称的唯一列表,不在其他两个列表中

基于同一列表的两个不同属性的分层列表

如何在Python中将列表分为两个唯一列表?

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

另一个表中两个日期之间的日期列表

从一个随机创建两个列表

找出两个值之间的差异?

使用LINQ基于另一个属性的两个不同列表中存在的数字之间的差异

使用和修改同一列表对两个函数进行多处理

在同一列表中添加两个对象

序言中同一列表上的两个基于条件的替换函数?

如何在熊猫中另一列的两个值之间创建一个包含行数的列

快速创建两个原始列表的差异列表的方法

Python - 在有序列表中的两个元素之间创建一个新的子列表

根据索引从两个列表中创建一个列表列表

通过在列表推导中组合两个列表来创建一个列表

从两个数据框创建一个列表

从两个表创建列表

Python将一个列表的元素连接到另一列表的元素之间

Python在一个列表中查找位于另一列表的值之间的值的方法

在R中将元素列表拆分为两个唯一列表(并获得所有组合)

PHP - 基于一个值找出具有不同结构的两个多维数组之间的差异