파이썬 map로 리스트 정수로 만들때 함수는 어떻게 만드나요?


def example(arr):
    return arr

file = open('data.txt','r')
arr = list(map(example, file))
print(example(arr))

==  data.txt ==
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20

제가 원하는 값은 아래처럼 만들고싶은데 리스트를 숫자로 변경하면 ValueError: invalid literal for int() with base 10: '1 2 3 4 5\n' 오류가 나옵니다. 텍스트 안에 숫자를 붙여쓰면 오류메세지가 안나오는데... 이유가 궁금합니다.

[1,2,3,4,5] 
[6,7,8,9,10]
~
[16,17,18.19,20]

조회수 93


Banner bitmango

2 답변


좋아요
1
싫어요
채택취소하기

참고해보세요.

with open('파일', 'r') as f:
    print([line.rstrip().split() for line in f])

[['1', '2', '3', '4', '5'], ['6', '7', '8', '9', '10'], ['11', '12', '13', '14', '15'], ['16', '17', '18', '19', '20']]


with open('파일, 'r') as f:
    print(list(map(lambda line:line.rstrip().split(), f)))

[['1', '2', '3', '4', '5'], ['6', '7', '8', '9', '10'], ['11', '12', '13', '14', '15'], ['16', '17', '18', '19', '20']]
  • 2017년 12월 14일에 작성됨


입력한게 숫자가 아니라 문자이기 때문이겠죠;

  • 2017년 12월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close