【问题标题】:assign values executed to array in python将执行的值分配给python中的数组
【发布时间】:2013-03-10 04:32:50
【问题描述】:
n = 1
for n in range(3):         
    p = Poly(a[n+1][0:3])
    print p 
    n=n+1

这是我的编码。基本上,我有一个 3 乘以 3 的矩阵,我想将每一行分配给一个多项式函数,然后将每个多项式函数分配给一个新数组。但是,我不知道如何将每次从 poly 函数执行的 p 的值分配给我想要的数组。

请帮帮我。

执行的 p 的输出看起来像

  • (749.55*x**2) + (6.95*x**1) + (9.68*(10^-4)*x**0)
  • (1285*x**2) + (7.051*x**1) + (7.375*(10^-4)*x**0)
  • (1531*x**2) + (6.531*x**1) + (1.04*(10^-3)*x**0)

基本上,从执行的 p 输出构建一个 3*1 数组就足够了。

对于信息,我的 a 矩阵看起来像这样

[['A', 'B', 'C', 'PMIN', 'PMAX'], ['749.55', '6.95', '9.68*(10^-4)', '320', '800'], ['1285', '7.051', '7.375*(10^-4)', '300', '1200'], ['1531', '6.531', '1.04*(10^-3)', '275', '1100']]
[['A' 'B' 'C' 'PMIN' 'PMAX']

【问题讨论】:

  • 欢迎来到Stack Overflow!如果您编辑您的问题,请选择所有代码,然后单击带有{} 的按钮,它将很好地格式化为代码。

标签: python arrays assign


【解决方案1】:

列表推导非常简单地描述了这一点:

def Poly(a):
  return "{}x^2 + {}x + {}".format(a[0],a[1],a[2])
a = [['A', 'B', 'C', 'PMIN', 'PMAX'],[1,2,3,99,99],[4,5,6,42,42],[7,8,9,3.14,2.72]]
result = [Poly(a[n]) for n in range(1,4)]
print result

输出是:

['1x^2 + 2x + 3', '4x^2 + 5x + 6', '7x^2 + 8x + 9']

【讨论】:

    【解决方案2】:

    试试这个:

    p = []
    for n in range(3):
        p.append(Poly(a[n+1][0:3]))
    print p
    

    我无权访问您的 Poly 函数或 a 数组,但我们可以这样测试:

    p = []
    for n in range(3):
        p.append([n,n+1,n+2])
    print p
    #output:
    #[[0, 1, 2],
    # [1, 2, 3],
    # [2, 3, 4]]
    

    我还删除了您使用 n+1 和 n=n+1 的行,因为它们都是通过使用 n in range(3) 自动完成的,它执行以下操作:

    for n in range(3):
        print n
    #output:
    # 0
    # 1
    # 2
    

    (请注意,它从0 开始并以2 结束,这样它就可以精确地运行3 次)

    【讨论】:

    • 谢谢,它解决了我的问题。我可以再问一个问题吗?输出中的值的 x 是 x。对于输出中的每个术语,我如何区分输出与 x?
    • 这与当前问题有很大不同,您最好发布一个新问题,询问如何进行衍生。您需要发布该 Poly 函数的更多详细信息。
    【解决方案3】:

    但是,我不知道每次执行时如何分配 p 的值 从 poly 函数到我想要的数组。

    results = []
    for x in range(3):
       p = Poly(something)
       results.append(p) # adding it to the list `results`
    

    顺便说一句,在 Python 中,没有数组,只有列表(0-index 集合)和字典,它们更像是哈希。

    【讨论】:

    • try: import array except ImportError: CommentOnStackOverflow()
    • 如果你听说过python中的数组,因此对这个说法感到困惑,那么array和numpy中有有个数组。
    猜你喜欢
    • 1970-01-01
    • 2018-08-23
    • 2022-08-04
    • 1970-01-01
    • 2018-01-10
    • 2015-07-05
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    相关资源
    最近更新 更多