在Python中使用循环创建交替的数组列表

时间:2015-07-07 02:35:22

标签: python list loops

我正在尝试使用循环生成一个交替的数组列表,但我无法弄清楚语法。目前我正在使用以下代码(作为示例):

[ numpy.array([i,4,5]),numpy.array([31,4,i]) for i in range(5)) ]

它出现以下错误:

  

“SyntaxError:语法无效”

我已尝试, +concatenate,但似乎无效。

所需的输出是以下列表,其中包含交替的数组条目:

[array([0, 4, 5]),
 array([31,  4,  0]),
 array([1, 4, 5]),
 array([31,  4,  1]),
 array([2, 4, 5]),
 array([31,  4,  2]),
 array([3, 4, 5]),
 array([31,  4,  3]),
 array([4, 4, 5]),
 array([31,  4,  4])]

谢谢大家!

2 个答案:

答案 0 :(得分:4)

你想要制作什么?

In [3]: [ (numpy.array([i,4,5]),numpy.array([31,4,i])) for i in range(5) ]
Out[3]:
[(array([0, 4, 5]), array([31,  4,  0])),
 (array([1, 4, 5]), array([31,  4,  1])),
 (array([2, 4, 5]), array([31,  4,  2])),
 (array([3, 4, 5]), array([31,  4,  3])),
 (array([4, 4, 5]), array([31,  4,  4]))]

使用for循环,同样的事情:

myList = []
for i in range(5):
   item = ( numpy.array([i,4,5]),numpy.array([31,4,i]) )
   myList.append(item)
print(myList)

答案 1 :(得分:2)

可能没有简单的方法来编制数组列表,因此使用sum将所有内部列表添加到一起以获得一个数组列表。 (见文件here

In [6]: sum([ [numpy.array([i,4,5]), numpy.array([31,4,i])] for i in range(5) ],[])
Out[6]: 
[array([0, 4, 5]),
 array([31,  4,  0]),
 array([1, 4, 5]),
 array([31,  4,  1]),
 array([2, 4, 5]),
 array([31,  4,  2]),
 array([3, 4, 5]),
 array([31,  4,  3]),
 array([4, 4, 5]),
 array([31,  4,  4])]