작성
·
211
0
기초가 부족해서 기초부터 다시시작하고 있는 중입니다. ㅠㅠ
두가지 궁금한 사항이 있는데요,
a1=(1), a2=(1,) a3=('a'), a4=('a',) a5=('ab'), a6=('ab',)
이런식으로 튜플과 리스트, 집합을 전부 출력해봤습니다.
위처럼 출력해보니 집합에는 순서가 없기 때문에 인덱싱이나 슬라이싱이 안되는지 등 다양한 로직?들을 깨닳았는데요,
근데 두가지 궁금증을 해결하지 못한 부분이 있습니다.
첫번째 질문은,
튜플 출력시에 a=(1)을 int로 인식해서 출력이 안되는건 이해를 했으나,
a=('a')인 경우 출력이 되더라구요. 근데 a=(1)을 int로 인식해서 출력을 못한거라면, 'a'도 str로 인식해서 출력이 안되어야 하는게 정상아닌가요?
왜 a는 출력이되고 1은 출력이 안되는지 이해가 되지않습니다 ㅠㅠ
두번째 질문은,
'ab'를 출력했을 때, 튜플은 a만 출력이 되는데, 리스트는 왜 ab전부다 출력이 되는지 이해가 되지 않습니다. 왜그런걸까요..??
답변 1
1
오 좋은 질문입니다.
(1). 튜플은 반드시 iterable 한 데이터를 저장할 수 있어요. 중급에서 배우겠지만, str, list 등이죠
a = (21031999)
print(a[0])
똑같은 에러가 날거예요
a = ("21031999")
요렇게 바꿔주셔야 에러가 나지 않습니다.(str == iterable)
(2).아래 예제
a = ('ab')
b = ["ab"]
print(a[0])
print(b[0])
튜플은 내부적으로 ab를 a = ('a','b')로 변환합니다.
그래서 a만 출력이 되고 리스트는 ab 자체를 하나의 원소로 출력합니다.