๐ฌ TypeError: 'int' object is not subscriptable
ํํ์ง๋ง ๋นํฉ์ค๋ฌ์ด ์ด ์๋ฌ,
๋์ฒด ์ ๋จ๋ ๊ฑธ๊น์?
โ ์๋ฌ ๋ฉ์์ง ์์
TypeError: 'int' object is not subscriptable
์ด ์๋ฌ๋ ์ ์(int) ๋ฅผ ๋ง์น ๋ฆฌ์คํธ๋ ๋ฌธ์์ด์ฒ๋ผ ์ธ๋ฑ์ฑ(์ฌ๋ผ์ด์ฑ) ํ๋ ค ํ ๋ ๋ฐ์ํฉ๋๋ค.
๐ ์์ธ: ์ ์๋ ์ธ๋ฑ์ฑ์ด ๋ถ๊ฐ๋ฅํ ํ์
subscriptable์ด๋ผ๋ ๋ง์ ์ฝ๊ฒ ๋งํด **[]๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ฐ?**๋ฅผ ๋ปํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ฆฌ์คํธ๋ ๋ฌธ์์ด์ ์ธ๋ฑ์ค๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ์ฃ :
my_list = [10, 20, 30]
print(my_list[0]) # โ
๊ฐ๋ฅ
๊ทธ๋ฐ๋ฐ ์ ์๋?
num = 123
print(num[0]) # โ TypeError ๋ฐ์
์ ์๋ ์ธ๋ฑ์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฉ๋๋ค.
๐งช ์์ฃผ ๋ฐ์ํ๋ ์ค์
โ ํจ์ ๊ฒฐ๊ณผ๋ฅผ ์๋ชป ๋ค๋ฃฐ ๋
def get_number():
return 123
result = get_number()
print(result[0]) # โ ๋ฆฌ์คํธ๋ผ๊ณ ์ฐฉ๊ฐํ๊ณ ์ธ๋ฑ์ฑ → ์๋ฌ ๋ฐ์
→ return ๊ฐ์ด ๋ฆฌ์คํธ์ธ์ง, ์ซ์์ธ์ง ํ์ธ ํ์!
โก ํ์ ์ด ๋ฐ๋ ๊ฒ์ ์ธ์ ๋ชปํ ๋
data = {'score': 100}
score = data['score']
print(score[0]) # โ ์ซ์์ธ๋ฐ ์ธ๋ฑ์ฑํจ
→ score๋ ์ซ์์ ๋๋ค. score[0]์ ๋ถ๊ฐ๋ฅํ์ฃ .
๐ ๏ธ ํด๊ฒฐ ๋ฐฉ๋ฒ
1. ๊ฐ์ ํ์ ํ์ธํ๊ธฐ
print(type(score)) # <class 'int'>
2. ํ์ํ ํ์ ์ผ๋ก ๋ณํํ๊ฑฐ๋ ์ธ๋ฑ์ฑํ์ง ์๊ธฐ
- ๋ฆฌ์คํธ๋ ๋ฌธ์์ด์ฒ๋ผ ๋ค๋ฃจ๊ณ ์ถ๋ค๋ฉด ๋ฌธ์์ด๋ก ๋ณํ
num = 123
num_str = str(num)
print(num_str[0]) # โ
'1'
3. ํจ์๋ ๋ณ์ ์ด๋ฆ์ด ์๋ํ ํ์ ๊ณผ ์ผ์นํ๋์ง ํ์ธํ๊ธฐ
โ ๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ
- TypeError: 'int' object is not subscriptable๋
์ซ์๋ฅผ ๋ฆฌ์คํธ์ฒ๋ผ ๋ค๋ค์ ์๊ธฐ๋ ์๋ฌ์ ๋๋ค. - []๋ฅผ ์ธ ์ ์๋ ์๋ฃํ์ ๋ฆฌ์คํธ, ๋ฌธ์์ด, ํํ ๋ฑ์ด๊ณ
int, float, bool ๋ฑ์ subscriptableํ์ง ์์์. - ๊ฐ์ ํ์ธํ๊ณ , ์ฌ๋ผ์ด์ฑํ๋ ค๋ฉด ์ ์ ํ ํ์ ์ผ๋ก ๋ณํํ์ธ์.
๐ ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ธ
- ๐น [์๋ฌ ํด๊ฒฐ] KeyError – ์กด์ฌํ์ง ์๋ ํค๋ผ๊ณ ์?
https://datacodingschool.tistory.com/296 - ๐น [์๋ฌ ํด๊ฒฐ] ValueError: could not convert string to float – ์ ์ด๋ฐ ์๋ฌ๊ฐ ๋ ๊น?
https://datacodingschool.tistory.com/295