在Python中初始化矩阵的简单方法是什么?

时间:2014-08-27 23:10:52

标签: python algorithm

我使用简单的多项式算法在2D矩阵中工作:

for i in range(len(content1)):
    for j in range(len(content2)):
        if content1[i]==content2[j]:
            matrix[i][j]=1
        else:
            matrix[i][j]=0

此代码本身无法编译,原因很简单。 dot_matrix未初始化。那么更简单的方法是什么呢?

另外,我怎样才能在上面这样的单行代码中实现相同的逻辑:

  

matrix = [[x for x in range(len(content1))] for x in range(len(content2))]

2 个答案:

答案 0 :(得分:2)

首先,您在第一个代码块中使用content1作为外部索引,因此matric应该在外部使用content1进行初始化:

matrix = [[0 for x in range(len(content2))] for x in range(len(content1))]

是的,你可以像其他答案一样在一行中完成:

matrix = [[1 if i == j else 0 for j in content2] for i in content1]

答案 1 :(得分:1)

x替换为ij,然后将0替换为(1 if content1[i]==content2[j] else 0)