【问题标题】:Generate n lists of numbers between two numbers with python使用python生成两个数字之间的n个数字列表
【发布时间】:2021-10-30 17:55:34
【问题描述】:

我有一个元组 J = (inf, sup, n),我想在 inf 和 sup 之间生成 n 个数字列表。

J = (-7, 9.5, 4)

预期的输出应该是这样的:

[-7,-2.875], [-2.875,1.25], [1.25,5.375], [5.375,9.5]

有人可以帮忙吗?

提前致谢!

【问题讨论】:

  • 抱歉,这个平台不是为了获取代码解决方案,而是为了调试或修复代码中的问题。如果您能提及到目前为止您尝试过什么,这将有所帮助?以下是您可以使用的逻辑:
  • 欢迎来到 Stack Overflow。请阅读How to Askmeta.stackoverflow.com/questions/261592/…。我注意到你在这个问题上使用了numpy 标签。如果您正在专门寻找一种使用 Numpy 执行此操作的方法,那么您应该明确说明,并且还显示 Numpy 格式化其数组的方式的输入和输出。无论如何,您应该更清楚地解释为什么预期的输出是什么。

标签: python list


【解决方案1】:

抱歉,此平台不是用于获取代码解决方案,而是用于调试或修复代码中的问题。如果您能提及到目前为止您尝试过什么会有所帮助?

但是,这里有一个解决方案。

您的输入是 inf、n、sup。

如果您注意到,您会列出 inf 和 sup 之间的 n 个元组。

所以区别将是 (sup-inf)/n

在您给出的示例中,它将是 (9.5-(-7))/4 = 4.125。

所以我们将通过在每个元组中存储一个初始值和一个最终值来从 -7 移动到 9.5。

对于第一对, 初始值 = -7 最终值 = -7+4.125 = -2.875

对于第二对, 初始 = -2.875 最终 = -2.875 + 4.125 = 1.25

第三对, 初始 = 1.25 最终 = 1.25 + 4.125 = 5.375

第四对 初始 = 5.375 最终 = 5.375 + 4.125 = 9.5

您可以创建一个返回这些 Pairs 列表的函数。

def getLists(inf, n, sup):
    output = []
    initial = inf
    final = sup
    continuous_difference = (sup-inf)/n

    while(initial != final):
        output.append([initial, initial + continuous_difference])
        initial += continuous_difference
    
    return output

if __name__ == '__main__':
    print(getLists(-7, 4, 9.5))

【讨论】:

    【解决方案2】:

    如果可以使用numpy,您可以使用numpy.linspace 并得到您想要的,如下所示:

    >>> import numpy as np
    >>> n = 4
    >>> lst = list(np.linspace(-7, 9.5, num=n+1))
    >>> list(zip(lst, lst[1:]))
    [(-7.0, -2.875), (-2.875, 1.25), (1.25, 5.375), (5.375, 9.5)]
    
    >>> list(map(list, zip(lst, lst[1:])))
    [[-7.0, -2.875], [-2.875, 1.25], [1.25, 5.375], [5.375, 9.5]]
    

    【讨论】:

    • 非常感谢!它正在工作!是的,我可以使用 numpy !
    【解决方案3】:
    [[J[0] + i/J[2]*(J[1]-J[0]), J[0] + (i+1)/J[2]*(J[1]-J[0])] for i in range(J[2])]
    

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多