728x90
๋ฐ์ํ
๋ฐ์ํ
1์ฐจ์ ๋ฐฐ์ด ์ ์ธ
rows = 10
graph = [0] * rows
print(graph)
์คํ๊ฒฐ๊ณผ
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2์ฐจ์ ๋ฐฐ์ด ์ ์ธ ISSUE CASE
2์ฐจ์ ๋ฐฐ์ด ์ ์ธ์์ 1์ฐจ์ ๋ฐฐ์ด์์ ์ ์ธํ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ด *์ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
rows = 10
cols = 5
graph = [[0] * cols] * rows
print(graph)
์คํ ๊ฒฐ๊ณผ
[[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]]
ํ์ง๋ง ์ฌ๊ธฐ์ ๊ฐ์ ๋ฃ์ด๋ณด๋ฉด ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
graph[0][0] = 1
[[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [1, 0, 0, 0, 0]]
graph์ 0ํ 0์ด์๋ง ๊ฐ์ ๋ฃ์๋๋ฐ, graph์ ๋ชจ๋ ํ์ 0์ด์ ๊ฐ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
728x90
Why?
Python์์ *์ฐ์ฐ์๋ฅผ ์ด์ฉํด ๋ฐฐ์ด์ ์ ์ธํ๊ฒ ๋๋ฉด, ์์ ๋ณต์ฌ(shallow copy)๊ฐ ์งํ๋ฉ๋๋ค.
์ฆ, ๋ฐฐ์ด ๋ด์ ์์๋ค์ด ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
๋๋ฌธ์ 2์ฐจ์ ๋ฐฐ์ด์ *์ฐ์ฐ์๋ก ์ ์ธํ์ ๋, ๊ฐ์ ๋ฃ์ผ๋ฉด ๋ค๋ฅธ ํ์๋ ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ๋๋ค.
2์ฐจ์ ๋ฐฐ์ด์ ์ด๋ป๊ฒ ์ ์ธํด์ผ ํ ๊น?
for๋ฌธ์ ์ด์ฉํ์ฌ ์ ์ธํ๋ฉด ๋ฉ๋๋ค.
rows = 10
cols = 5
graph = [[0] * cols for _ in range(rows)]
Check
graph[0][0] = 1
[[1, 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]]
๋ฌธ์ ์์ด ์๋ํ ๋๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐ์ํ
728x90
๋ฐ์ํ
'๐ Development > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฆฌ์คํธ, ๋ค์ค ๋ฐฐ์ด ์ ๋ ฌ ๋ฐฉ๋ฒ (์์ ํฌํจ) (2) | 2024.09.02 |
---|