입력받은 숫자나 값을 리스트로 분할하려면 어떻게해야할까요?


5개의 값을 입력받아 더한 값 1+2+3+4+5 = 15 <- 이 값을 리스트로 [1,5] 이렇게 만들고 싶은데 list함수를 사용하니 문자값만 들어갈수있는건지...?? 아니면 값이 하나여서 인지 ?? 아무튼 str로 변경해서 넣은후 map함수로 변경해서 하면 되기는 하는데 이게 반복문 안 에서 사용하니 에러가 납니다 리스트로 분리한 값을 계속 더하기로 사용해야하는데 ...이걸 한번에 나눌수 있는 방법이 있을까요?

arr = []
result = 1
num = int(input("반복 숫자 입력"))
for i in range(num):
    num2 = int(input("숫자 입력"))
    arr.append(num2)
    print(arr)

for j in arr:
    result += j
    result = list(str(result))
    result = list(map(int, result))
print(result)

조회수 101


2 답변


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

질문자체가 완전히 이해되지는 않습니다. 특히 반복문안에서 해야 된다는 것이 이해가 안되는군요.

>>> list(map(int, list(str(15))))
[1, 5]
  • 2017년 11월 28일에 작성됨

  • 음.. 반복숫자 입력 수만큼 숫자 입력을 받아 더한후 더한 값을 분할 하여 더하는 걸 만들고 있습니다. 예로) 10 입력 1+2+3+4+5+6+7+8+9+10 = 55 -> 5+5 = 10 -> 1+0 = 1 이렇게 만드려고 하는데 더한 값들을 리스트로 하나씩 나눠 만들려고합니다.    다크매터   2017.11.28 13:56     

규칙을 잘 모르겠습니다.

만약 1부터 15까지 합이면 120인데 1 2 0 이면 3 입니다.

def sum_of_item(number):
    L = list(map(int, list(str(number))))
    print(L)
    sum_L = sum(L)
    print(sum_L)
    if sum_L >= 10:
        sum_of_item(sum_L)

sum_L = sum(range(1, 11))
print(sum_L)
sum_of_item(sum_L)

55
[5, 5]
10
[1, 0]
1

range가 1, 16이면
120
[1, 2, 0]
3
  • 2017년 11월 28일에 작성됨

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

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