【问题标题】:How to find the difference between two lists of tuples如何找到两个元组列表之间的差异
【发布时间】:2019-11-23 22:09:27
【问题描述】:

我有两个列表,是我之前代码的输出:

List_1 = [((1.1, 2, 3), (1.1, 2, 3, 4), (3, 4, 5), 5, 6, 7)]
List_2 = [((1.1, 2, 3), (1.1, 2, 3, 4), (3, 4.4, 5), 5, 6, 7)]

我知道这两个列表只有一个元素,我正在尝试删除括号并使它们像:

List_1 = [(1.1, 2, 3), (1.1, 2, 3, 4), (3, 4, 5), 5, 6, 7]
List_2 = [(1.1, 2, 3), (1.1, 2, 3, 4), (3, 4.4, 5), 5, 6, 7]

我想要的是比较两个列表中的每个元素并输出第二个列表中与第一个列表不同的元素,如下所示:

Error = (3, 4.4, 5)

有人知道如何比较吗?提前谢谢你。

【问题讨论】:

  • 请解释你的逻辑!您想比较两个列表中的元素索引吗?如果它们不同,请将它们放入error 列表中?
  • 抱歉解释不清楚,我已经编辑了,如果还有什么不清楚的地方请检查一下,谢谢。
  • 如果您的列表位于列表中的元组内,例如List_1 = [((1.1, 2, 3), (1.1, 2, 3, 4), (3, 4, 5), 5, 6, 7)],您可以只使用set(List_2[0]) - set(List_1[0]),它会输出List_2 的每个不同 元素已与List_1 进行比较。注意 Python set 不包含重复值
  • 谢谢!我会试试你的方法。

标签: python list tuples


【解决方案1】:

您可以使用基本的 for 循环和 if 语句来检查值:

List_1 = [((1.1, 2, 3), (1.1, 2, 3, 4), (3, 4, 5), 5, 6, 7)]
List_2 = [((1.1, 2, 3), (1.1, 2, 3, 4), (3, 4.4, 5), 5, 6, 7)]

List_1 = list(List_1[0]) # [(1.1, 2, 3), (1.1, 2, 3, 4), (3, 4, 5), 5, 6, 7]
List_2 = list(List_2[0]) # [(1.1, 2, 3), (1.1, 2, 3, 4), (3, 4.4, 5), 5, 6, 7]

for i in range(len(List_1)):
    if List_1[i] != List_2[i]:
        print ("Error: {}".format(List_2[i]))

输出:

Error: (3, 4.4, 5)

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 2020-08-25
    • 1970-01-01
    • 2013-10-09
    • 2015-03-19
    • 2010-12-25
    相关资源
    最近更新 更多