当前位置: 首页 > 面试题库 >

执行元组算术的优雅方法

赏弘
2023-03-14
问题内容

在Python 2.7中执行元组算术的最优雅,简洁的方法(不创建带有运算符重载的我自己的类)?

可以说我有两个元组:

a = (10, 10)
b = (4, 4)

我的预期结果是

c = a - b = (6, 6)

我目前使用:

c = (a[0] - b[0], a[1] - b[1])

我也尝试过:

c = tuple([(i - j) for i in a for j in b])

但结果是(6, 6, 6, 6)。我相信以上内容是嵌套的for循环,导致4次迭代和4个值。


问题答案:

如果您正在快速寻找,可以使用numpy:

>>> import numpy
>>> numpy.subtract((10, 10), (4, 4))
array([6, 6])

如果您想将其保存在一个元组中:

>>> tuple(numpy.subtract((10, 10), (4, 4)))
(6, 6)


 类似资料:
  • 本文向大家介绍Lua中使用元表(metatable)执行算术类元方法实例,包括了Lua中使用元表(metatable)执行算术类元方法实例的使用技巧和注意事项,需要的朋友参考一下 上一节对元表和元方法有了一个初步的认识,这篇就来举个最简单的例子吧,加深一下印象,也为后续内容做准备。 1.元方法名 Lua其实已经规定好了各种算术操作符的元方法名字,如: __add:加法 __sub:减法 __mul

  • 问题内容: 我有一个大的可迭代项,实际上,由以下给定: 我想访问百万分之一的元素。我确实以不同的方式解决了问题。 强制迭代到列表并获取第1000000个元素: 手动跳过直到999999的元素: for i in xrange(999999): p.next() return p.next() 手动跳过元素v2: for i, element in enumerate(p): if i == 999

  • 问题内容: 输入: 输出: 什么是最优雅的(阅读:Pythonic)书写方式? 问题答案: 我自己会写一个生成器,但是像这样:

  • 问题内容: 我有2个不同的元组类型(Double,Double): 我想使用一个简单的if语句比较它们​​的值。就像是: 这将引发以下错误: 找不到’==’的重载,该重载接受提供的参数 我当前的解决方案是这样的功能: 我已经尝试编写扩展,但是不能使其用于元组。您对此问题是否有更优雅的解决方案? 问题答案: 更新资料 正如Martin R 在评论中指出的那样,最多可以将具有六个组成部分的元组与进行比

  • 问题内容: 我试图更好地掌握numpy数组,所以我有一个关于它们的示例问题: 假设我有一个名为a的numpy数组。我想对进行操作,使其中的所有小于0的值递增,其余的保持不变。例如,如果我有: 我想返回: 最紧凑的语法是什么? 谢谢! 问题答案:

  • 问题内容: 到目前为止,这是我得到的: 这让我既震惊又浪费。如果存在firstChoice,则我将不必要地计算secondChoice。 还有一个更有效的版本: 在这里,如果不复制映射器或声明另一个局部变量,就无法将某些映射函数链接到最后。所有这些使代码比要解决的实际问题更加复杂。 我宁愿这样写: 但是可选:::显然不存在。怎么办? 问题答案: 试试这个: map方法为您提供了一个。然后,该方法将