그래프 형태 질문드립니다.
329
작성한 질문수 3
g=[[0]*(N) for _ in range(N)] 형태와
g = [[0]*N]*N 형태가 다른가요? 처음 만들때 print를 해보면 형태가 같게 나오지만 각각의 자리에 가중치를 넣으면 형태가 다르게 나와 질문 드립니다.
import sys
sys.stdin = open("input.txt", "rt")
N, M = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(M)]
mat = [[0]*N]*N
g = [[0]*N for _ in range(N)]
print(mat)
print(g)
for r,c,l in a:
g[r-1][c-1] = l
mat[r-1][c-1] = l
for i in range(N):
for j in range(N):
print(mat[i][j], end=' ')
print()
print("=======================")
for i in range(N):
for j in range(N):
print(g[i][j], end=' ')
print()
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] 2 2 5 5 5 0 2 2 5 5 5 0 2 2 5 5 5 0 2 2 5 5 5 0 2 2 5 5 5 0 2 2 5 5 5 0 ======================= 0 7 4 0 0 0 2 0 5 0 5 0 0 0 0 5 0 0 0 2 0 0 5 0 0 0 0 0 0 0 0 0 0 5 0 0
답변 1
2
이차원 리스트 생성은 g=[[0]*(N) for _ in range(N)] 와 같이 생성해야 합니다.
g = [[0]*N]*N 같이 생성하면 모양은 비슷하지만 동일한 1차원 리스트를 여러번 복사했을 뿐이라고 알고있습니다.
즉 g[0][0]=7 값을 넣으면 복사된 모든 1차원 리스트의 0번 인덱스가 다 7이 됩니다.
g = [[0]*3]*3
g[0][0]=7
print(g)
를 실행해 보세요.
[[7, 0, 0], [7, 0, 0], [7, 0, 0]] 와 같이 출력됩니다. 저도 자세한 건 모릅니다.
기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.
1
77
2
스택에서 ')'을 만나는 경우
0
78
3
문제가 어디있나요?
0
65
2
변수 or 함수명
0
61
1
침몰하는 타이타닉 문제 질문입니다
0
56
1
AA.py 책점 에러
0
57
1
오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.
0
111
2
5.동전분배하기 문제 밑에코드도 정답이될까요?
0
110
1
아나그램 비교 코드
0
116
2
AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.
0
160
2
문제 링크가있나여?
0
147
2
채점기 Time Limit Exceeded 오류 문의
1
163
2
동적계획법은 사용하는 문제
0
126
2
제 코드 좀 봐주세요
0
148
1
예외가 존재할 가능성?
0
97
1
3번이 안풀립니다
0
93
0
5번 틀림
0
114
0
오류원인?
0
98
0
리스트 선언
0
106
1
침몰하는 타이타닉(그리디) 문제 질문
0
109
1
알고리즘
0
69
1
코딩테스트
0
92
1
DFS 순서 질문드립니다.
0
127
2
left, right를 사용한 풀이법에 대한 질문입니다
0
91
1





