【发布时间】:2017-03-05 08:23:57
【问题描述】:
我正在尝试生成矩阵A == [f(i,j) for i,j in range(0,n)]。矩阵是对称的(f(i,j) == f(j,i)),对角元素为零(f(i,i) == 0)。
问题:是否可以生成一个列表推导式来生成这个矩阵但只为i < j 调用函数f(i,j)?
不是我的问题:以其他方式生成对称矩阵。
可能的解决方案:通过辅助函数g调用f,将f的值保存在额外的存储中或返回存储的值。
是否可以解决避免额外存储的问题? 我不确定这个额外的障碍是否意味着对列表理解本身的引用(我读到的 Python 中不存在)是必要的,希望我错过了一些其他技巧。
【问题讨论】:
-
这可能会给你一个很好的起点:stackoverflow.com/questions/6981717/…
-
@BrandonM 是的,使用列表推导式制作上三角矩阵很容易,对角线也有零。
标签: python arrays list-comprehension