【问题标题】:How to get triplets from an array?如何从数组中获取三元组?
【发布时间】:2021-12-27 03:02:43
【问题描述】:

我有 [1,2,3],我希望得到 [(1,1,1), (1,4,9), (1, 8, 27)]。实现这一目标的最简单方法是什么?

提前感谢您!我正在使用 numpy。

【问题讨论】:

  • 您尝试了哪些方法,结果如何?请edit 您的问题包括minimal reproducible example 显示您在代码中的尝试,以便我们提供具体帮助
  • 你的第一个数字应该是1, 2, 3吗?
  • 您说您使用的是 numpy,所以您想要一个二维 numpy 数组作为结果还是您的问题中的元组列表?

标签: python python-3.x list numpy torch


【解决方案1】:

我可能会通过列表理解来执行此操作,即遍历您的数组/列表的内部循环,即。 e. [1,2,3] 和一个遍历权力的外循环,即。 e.零、一和二(编辑:要实现您在问题中指定的输出,需要[0,2,3] 作为权力列表):

elements = [1,2,3]
powers = [0,1,2]
[[e**i for e in elements] for i in powers]

这个输出是

[[1, 1, 1], [1, 2, 3], [1, 4, 9]]

如果你想要一个 numpy 数组,你可以用np.array() 转换它,如果你想要一个元组列表,就像你在问题中写的那样,用tuple() 转换它,即。 e.

import numpy as np
elements = [1,2,3]
powers = [0,1,2]

# numpy array
np.array([[e**i for e in elements] for i in powers])

# list of tuples
[tuple([e**i for e in elements]) for i in powers]

【讨论】:

    【解决方案2】:

    我会这样做,检查一下:

    def get_cuadrado_cubo(lista):
        resp = []
        for i in range (4):
            if i == 1:
                continue
            resp.append((lista [0] ** i, lista [1] ** i, lista [2] ** i) )
    
        return resp
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      • 2015-07-13
      • 2014-06-14
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      相关资源
      最近更新 更多