Python迭代和多维数组结构

时间:2012-09-11 01:28:16

标签: python arrays for-loop

我试图将一个变量存储在python脚本中,mxn数组使用嵌套循环,如下所示:

A=[ ]
for j in ListA:
   for x in ListB:
      values = some.function(label_fname, stc_fname)
      A(j)=values(x)

对于每个xvaluesmxn矩阵,m~=n。 当我通过values[x]values(x)对此处的值进行索引时,我得到: output operand requires a reduction, but reduction is not enabledcan't assign to function call

我想要的是追加values(x)矩阵并存储在A(j)中。老实说,我不能用英语说这个,但在matlab术语中我试图创建一个单元格数组,其中A{j}是一个mxn数组。

提前致谢。

2 个答案:

答案 0 :(得分:1)

你似乎有几个问题与python:

  1. 在索引到列表时,请使用[];不是()。此外,列表的第一个元素是索引0.这意味着如果你有一个列表'L = ['a','b','c','d'],

    • L中的'a'的索引是0
    • L中'b'的索引是1
    • L中'c'的索引是2
    • L中'd'的索引是3
  2. 根据我的解释,我会建议以下代码。看看它是否适合你:

    A = []
    for sub_list in ListA:
        temp = []
        for x in ListB:
            values = some.function(label_fname, stc_fname)
            temp.append(values)
        A.append(temp)
    

    我真的不太确定你要求的是什么,但希望这是一个好的开始。希望它有所帮助

答案 1 :(得分:0)

您可能正在尝试/期望使用j作为密钥创建dict()

或者,对于多维数组,numpy非常有用

请参阅dict()文档:http://docs.python.org/library/stdtypes.html#dict

注意:

> A(j) # this calls function A
> A[j] # this returns the list item 'j'
> A[j] = foo # this sets list item 'j' = foo