반응형
본 프로그램은 python 2.7.13에서 제작되었습니다.
보통 C++에서는 return을 할 때 값 하나를 리턴해야 하거나, 다수의 값을 리턴하고 싶을 때는 pair, tuple 혹은 struct로 return 해야한다.
하지만 파이썬에서는 이러한 편의까지 고려하여 return의 개수 제한을 두지 않았다.
즉, 자신이 원하는 대로 리턴을 해도 된다는 의미이다.
이때 이전부터 tuple라는 개념은 3개의 값을 가진다라고 알고 있었는데
파이썬에서는 그냥 리스트가 [값1, 값2, 값3, 값4, 값5, ...] 이라면 튜플은 (값1, 값2, 값3, 값4, 값5, ...)이다.
대신 리스트는 인덱스 내의 값 변경이 가능하고 튜플은 인덱스 내의 값을 변경 할 수 없다.(immutable)
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #-*- coding: utf-8 -*- def solve(mylist): length = len(mylist) evenTotal = 0 oddTotal = 0 for i in range(length): if(i % 2): # there is even value in odd index evenTotal += mylist[i] else: oddTotal += mylist[i] return evenTotal, oddTotal # return tuple arr = [1,2,3,4,5,6,7,8,9,10] ret = solve(arr) even = ret[0] odd = ret[1] print 'tuple : ', ret, ' evenTotal : ',even, ' oddTotal : ', odd // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
대신 리스트는 인덱스 내의 값 변경이 가능하고 튜플은 인덱스 내의 값을 변경 할 수 없다.(immutable)
위의 코드는 다음과 같은 내용을 가지고 있다.
'solve 함수는 list를 받아와서 list의 짝수번째 값들의 총합과 list의 홀수번째 값들의 총합을 tuple로 리턴하고 그 값을 출력하라.'
결국 return 과정을 보면 evenTotal, oddTotal로 적히는데 이 과정이 튜플로 리턴되는 과정이고,
ret에는 튜플이 들어있고, ret[0]는 짝수의 총합, ret[1]은 홀수의 총합이 들어있다.
반응형
'Basic > Python' 카테고리의 다른 글
파이썬 str 슬라이싱, 여러가지 메서드 사용 방법 (0) | 2017.07.03 |
---|---|
파이썬 str count 메서드 만들기 (0) | 2017.07.03 |
파이썬 random 모듈 (0) | 2017.06.29 |
파이썬 try, except 사용 방법 (0) | 2017.06.29 |
파이썬 기본 입력 방법(scanf, cin, scanner ...) (0) | 2017.06.27 |