python列表中缺少项目

时间:2019-12-05 17:41:48

标签: python arrays for-loop matrix

我有两个函数,它们生成两个矩阵,第一个函数生成一些平方矩阵,而第二个函数则根据第一个矩阵生成一维矩阵。这两个函数都依赖于参数N,第二个函数矩阵结果应该具有(N * 2)** 2的矩阵。我的问题是,当我使用参数N的值大于4时,第二个函数总是缺少10个元素函数结果。(已删除OP函数,以创建一个最小问题。请检查编辑以获取详细信息。下面是一个示例函数,用于说明问题

def test(N):
        m = []
        for i in range(0,(N*2)):
            for j in range(-1,(N*7),4):
                m.append((i,j))


        return len(m)

N = 4的示例

test(4)

输出:
64

N = 5的示例

test(5)

输出:
90

示例2的结果为90,而应为100,任何人都可以帮忙

1 个答案:

答案 0 :(得分:0)

您可以轻松地检查每个范围将导致多少次迭代:

>>> n = 5
>>> len(range(0, n*2))
10
>>> len(range(-1, n*7, 4))
9

10 * 9实际上是总共90次迭代和90个元素添加到了数组中。

我假设您希望内部循环中有更多元素,所以您可能对range如何处理边界感到困惑。快速解决方案是尝试使用n*7+1之类的变体,直到获得正确的行为为止。

相关问题