【问题标题】:How do I make a "for" loop for this sequence of arrays? [closed]如何为这个数组序列创建一个“for”循环? [关闭]
【发布时间】:2020-06-16 19:11:25
【问题描述】:

嗯,它旨在模拟 n 次多项式。 因此,如果 n = 2,它将是:

[1^2, 1^1, 1^0], [2^2, 2^1, 2^0], [3^2, 3^1, 3^0]

当 n = 3 时,它将是:

[1^3, 1^2, 1^1, 1^0], [2^3, 2^2, 2^1, 2^0], [3^3, 3^2, 3^1, 3^0], [4^3, 4^2, 4^1, 4^0]

所以对于 n = k:

[1^k, 1^(k-1), ... 1^(k-k)]... [(k+1)^k, (k+1)^(k-1)... (k+1)^(k-k)]

谢谢!

【问题讨论】:

  • 欢迎来到 SO!请提供更多详细信息。
  • 我编辑了,如果您需要更多信息,请告诉我谢谢!
  • 您的^ 是指差异还是力量?
  • 到目前为止你尝试过什么? MCVE
  • 这意味着权力

标签: python arrays loops


【解决方案1】:

下面的代码会对你有所帮助。

array = []
n = 3
for base in range(1, n+1):
    inner_array = []
    # Loop in reverse until 0
    for degree in range(n+1, 0, -1):
        inner_array.append(base ** (degree - 1))
    array.append(inner_array)
print(array)

n=4 省略

[[1, 1, 1, 1, 1], [16, 8, 4, 2, 1], [81, 27, 9, 3, 1], [256, 64, 16, 4, 1]]

可以变成函数

def get_polynomial_arrays(n):
    array = []
    for base in range(1, n + 1):
        inner_array = []
        # Loop in reverse until 0
        for degree in range(n + 1, 0, -1):
            inner_array.append(base ** (degree - 1))
        array.append(inner_array)
    return array

【讨论】:

    【解决方案2】:

    下面是使用嵌套列表理解的方法:

    n = 3
    a = [[(s+1)**(n-i) for i in range(n+1)] for s in range(n+1)]
    print(a)
    

    输出:

    [[1, 1, 1, 1], [8, 4, 2, 1], [27, 9, 3, 1], [64, 16, 4, 1]]
    

    列表理解如下:

    a = []
    
    for s in range(n+1):
        b = []
        for i in range(n+1):
            b.append((s+1)**(n-i))
        a.append(b)
    print(a)
    

    【讨论】:

      【解决方案3】:

      您还可以以嵌套的方式使用列表推导,这是更 Pythonic 的方式,如下所示:

      n = int(input())
      poli_list = [[i**j for j in range(n,-1,-1)] for i in range(1,n+2)]
      print(poli_list)
      

      【讨论】:

        【解决方案4】:
        def printPolynomial(n):
            for x in range(1, n+2):
                print('[', end = '')
                for y in range(n,-1,-1):
                    print(x,'^',y,end='')
                    if y != 0:
                        print(', ', end='')
                print(']')
        
        
        printPolynomial(3)
        

        【讨论】:

        • 如果您解释了您提供的代码如何回答问题,这将是一个更好的答案。
        猜你喜欢
        • 2019-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-28
        • 2021-02-26
        • 1970-01-01
        • 2012-09-21
        相关资源
        最近更新 更多