반응형

본 프로그램은 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]은 홀수의 총합이 들어있다.



반응형