2014-08-27 2 views
2

나는 간단한 다항식 알고리즘 2 차원 매트릭스에서 일하고 있어요 :파이썬에서 행렬을 쉽게 초기화하는 방법은 무엇입니까?

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가 초기화되지 않았습니다. 그래서 쉬운 방법은 무엇입니까? 또한

, I는 I이 같은 하나 개 지어 코드로 상기 사용하고 동일한 로직을 구현할 수있는 방법

매트릭스 = [0 x의 범위 X (LEN (콘텐츠 1))]의 범위 (LEN (는 content2))]

+0

사용하지 않는 이유는 무시할 성능 최적화 – alfasin

+0

찾고 중지 : 다른 대답 같은 한 줄의이 언급 행렬에 대한 NumPy? –

답변

2

, 당신은 코드의 첫 번째 chunck의 외부 지표로 콘텐츠 1 사용하고, 그래서 matric뿐만 아니라 외부에 콘텐츠 1로 초기화해야합니다

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 if content1[i]==content2[j] else 0)으로 0 교체 ij과 함께 x S 바꾸기. 한 가지 들어

관련 문제