【问题标题】:What is the proper to do the difference between two tuple in python [duplicate]python中两个元组之间的区别是什么?
【发布时间】:2016-05-17 11:06:26
【问题描述】:

我正在寻找正确的方法来区分 2 个元组。例如:

a = (1, 2, 3)
b = (1, 0, 2)

预期差异

(0, 2, 1)

我知道我可以在两个元组上迭代创建一个新元组然后做不同的事情,但我正在寻找更传统或更合适的东西。

【问题讨论】:

    标签: python python-2.7 tuples


    【解决方案1】:

    您可以借助内置的zip 在同一迭代中访问这两个索引。之后,您只需将生成器表达式提供给 tuple 即可创建新的元组对象。

    diff = tuple(x-y for x,y in zip(a,b))
    

    【讨论】:

    • 这两者不一定有区别。这是一个减去另一个。有可能是负数。
    • @zondo 谁说它不应该包含负数?
    • “差异”的定义是这样说的。它是数字之间的距离,而不是一个数字减去另一个数字。
    • @zondo “差异”在数学中用来表示“一个数字减去另一个数字的结果”。
    【解决方案2】:

    你可以zip这两个元组元素,然后你可以在生成器表达式中减去每一对

    >>> a = (1, 2, 3)
    >>> b = (1, 0, 2)
    >>> tuple(i-j for i,j in zip(a,b))
    (0, 2, 1)
    

    【讨论】:

    • 这两者不一定有区别。这是一个减去另一个。有可能是负数。
    • @zondo 我没有阅读原始问题中的任何内容,说明他们是否需要签名或未签名的差异。如果他们想要一个胜过另一个,他们应该在他们的问题中说明这一点。
    • 就是区别的意思。它是两个数字之间的距离,而不是一个数字减去另一个数字。
    • @zondo 一个“差”是两个数相减的结果,同理“和”是相加的结果,“商”是相除的结果,“积”是结果的乘法。这些本质上与符号无关,我不知道您从哪里得到的印象是差异永远不会是负面的。
    • @zondo "The absolute difference of two real numbers x, y is given by |x − y|, the absolute value of their difference" 您所指的术语是“绝对差异”,没有“绝对”限定词,术语差异可能是负数。
    【解决方案3】:
    from operator import sub
    a = (1, 2, 3)
    b = (1, 0, 2)
    tuple(map(sub, a, b))
    

    (0, 2, 1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 2023-01-26
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多