我正在尝试使用循环生成一个交替的数组列表,但我无法弄清楚语法。目前我正在使用以下代码(作为示例):
[ 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])]
谢谢大家!
答案 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])]