강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

윤태영님의 프로필 이미지
윤태영

작성한 질문수

남박사의 파이썬 기초부터 실전 100% 활용

반복문 (for)에서 질문 ㅡ있습니다

작성

·

241

2

좋은 강의 들려주셔서 감사합니다

list ( i . items ( ) ) [ 0 ]  이 왜 배열의 요소를 튜플로 가져오나요

i의 item은 딕셔너리고 그것을 리스트로 형변환한것의 0번쨰 요소를 가져온것인데

리스트가 튜플로 바뀌는 메커니즘을 모르겠습니다

답변 1

0

남박사님의 프로필 이미지
남박사
지식공유자

_dict = {"name": "홍길동", "age": 30, "country": "Korea"}

이런 dict 형태의 데이터가 있다고 가정해보겠습니다.

print(type(_dict.items()) )

이렇게 _dict.items() 의 type을 출력해보면

<class 'dict_items'> 라는 형식으로 리턴이 됩니다. 

이것을 바로 사용할수 없기에 

list(_dict.items())

위 처럼 list 형태로 캐스팅을 하게  됩니다.

그러면 결과는 아래과 같게나옵니다.

[('name', '홍길동'), ('age', 30), ('country', 'korea')]

이렇게 리스트로 캐스팅이 되면서 안의 dict 형태의 인자는 튜플형태로 변환이 되게 되어있습니다.

키: 값 의 형태인 dict 는 iterable 한 데이터 형태가 아닙니다.

iterable 하다는것은 순서가 있는 연속된 자료형태인데 list 가 그렇습니다.

dict 는 iterable 한 데이터가 아니면서 키:값 으로 되어있기 때문에

이것을 iterable 하며 키:값 인 형태로 바꾸자니 튜플형태밖에 없기 때문에 

그렇게 변화 되게 됩니다.

물론  이렇게 직접 사용하지 않고 for 반복문을 통하면 dict 형태를 키와 값 형태로 받아올 수 있습니다.

for key, value in _dict.items():
    print(key, value)

도움이 되셨는지 모르겠습니다. 더 궁금하신점 있으시면 또 질문주세요 ^^

윤태영님의 프로필 이미지
윤태영

작성한 질문수

질문하기