๋ฐ์ํ
๐ฌ IndexError: list index out of range
๋ฆฌ์คํธ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ธ๋ฑ์ค๋ฅผ ์ ๊ทผํ ๋ ์์ฃผ ๋์ค๋ ์๋ฌ์
๋๋ค.
โ ์๋ฌ ๋ฉ์์ง ์์
IndexError: list index out of range
๋ฆฌ์คํธ๋ ํํ ๋ฑ ์ธ๋ฑ์ค๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์๋ฃํ์์
์กด์ฌํ์ง ์๋ ์ธ๋ฑ์ค๋ฅผ ํธ์ถํ๋ฉด ๋ฐ์ํฉ๋๋ค.
๐ ์์ธ: ๋ฆฌ์คํธ ๊ธธ์ด๋ณด๋ค ํฐ ์ธ๋ฑ์ค๋ฅผ ํธ์ถ
my_list = [10, 20, 30]
print(my_list[3]) # โ ์กด์ฌํ์ง ์์ → IndexError
→ ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํฉ๋๋ค. ์ ๋ฆฌ์คํธ์ ์ธ๋ฑ์ค๋ 0, 1, 2๋ฟ์ ๋๋ค.
๐งช ์์ฃผ ๋ฐ์ํ๋ ์ํฉ
โ for๋ฌธ์์ ๋ฒ์๋ฅผ ์๋ชป ์ค์
for i in range(len(my_list) + 1):
print(my_list[i]) # ๋ง์ง๋ง์ IndexError ๋ฐ์
โก ๋น ๋ฆฌ์คํธ์ ์ ๊ทผ
data = []
print(data[0]) # โ ๋น ๋ฆฌ์คํธ → ์ด๋ค ์ธ๋ฑ์ค๋ ์กด์ฌํ์ง ์์
๐ ๏ธ ํด๊ฒฐ ๋ฐฉ๋ฒ
1. ๋ฆฌ์คํธ์ ๊ธธ์ด๋ฅผ ๋จผ์ ํ์ธํ๊ธฐ
if len(data) > 0:
print(data[0])
2. try-except๋ก ์์ ํ๊ฒ ์ฒ๋ฆฌ
try:
print(my_list[3])
except IndexError:
print("์ ํจํ์ง ์์ ์ธ๋ฑ์ค์
๋๋ค.")
โ ๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ
- ์ธ๋ฑ์ค๋ ํญ์ 0 ~ len(list)-1 ์ฌ์ด์ฌ์ผ ํฉ๋๋ค.
- len() ํจ์๋ก ๋ฒ์๋ฅผ ํ์ธํ๊ณ , ์๋ชป๋ ์ ๊ทผ์ ์์ธ์ฒ๋ฆฌ๋ก ๋ง์ผ์ธ์.
๋ฐ์ํ