【发布时间】:2018-02-16 16:40:24
【问题描述】:
我有一个行矩阵列表:
rows = [ matrix([[1, 0, 0]]), matrix([[0, 1, 0]]), matrix([[0, 0, 1]]) ]
我尝试使用 for (a, b, c) in rows: 循环这些内容,但我得到了一个错误,而不是这个工作:
预期的行为是将行中的三个元素解包到a, b, c:
for (a, b, c) in rows:
print(f"{a} {b} {c}")
> 1 0 0
> 0 1 0
> 0 0 1
不幸的是,这适用于[1, 0, 0],但不适用于[[1, 0, 0]]。
我意识到这是因为他们是[[doubly packed]],但我想知道这个问题是否有简单的解决方案?
【问题讨论】:
-
请同时包含“预期行为”(参见minimal reproducible example)。否则很难准确回答你的问题..
-
您在 numpy 数组/矩阵上使用
for循环是否有原因?您是否首先创建此列表? -
@MSeifert 抱歉,我认为这很明显,但我想我应该更清楚地说明,所以我添加了一个示例!
-
@roganjosh 我正在遍历行矩阵中的值;这些都是长度 3,因此将值简单地解压缩到
a, b, c会很方便。我已经创建了矩阵列表。 -
感谢您的编辑。现在确实更清楚了。 :)
标签: python numpy for-loop matrix iterable-unpacking