파이썬 리스트값을 전부 정수형으로 변환하려고하는데
조회수 10831회
초짜입니다. line = list(map(str, input().split()))로 리스트를 입력해서 if문을 이용해 ['3','@','#'] 으로 된 리스트를 ['3',5,7]로 잘 바꿨는데 리스트[0] 자리를 int로 바꿀수 있는 방법 없을까요???
line = map(int, line ) 로 해봤는데요 print로 불러올때 오브젝트값이 나오던데 맞는건가요??
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
안녕하세요
line = ['3',5,7] line = map(int,line) print(line) # 여기서 맵 객체가 출력됨 for t in line: # 내부에 접근하려면 이렇게 print(t,type(t)) ''' <map object at 0x109568b38> 3 <class 'int'> 5 <class 'int'> 7 <class 'int'> '''
각각 타입을 찍어보면 int 형이 제대로 찍히네요 :)
리스트가 반환하기 원하시면
line = ['3',5,7] new_line = list(map(int,line)) # 맵 객체가 아닌 리스트로 보려면.. print(new_line[0])
이렇게 해주면 됩니다.
퍄이썬에서는 많은 프로세스가 순회가능한 객체에 대해서 저렇게 객체(순회가능한 객체or iterator)를 반환한데요
맵 역시 순회가능한 객체니깐 저렇게 반환이 되고 for문으로 사용도 가능합니다.
굳이 이터러블객체를 반환하게 만든이유는 결국에 메모리를 줄이고 더 빠르기 때문이라고 하네요 :)
댓글 입력