Python2017. 8. 28. 22:21

  튜플(tuple)은 변환이 불가능한 열거형 자료를 일컫는다. 자료의 형태가 일정하고 그 내용이 한정된 경우 튜플을 사용한다. 말이 말라깽이이니 예를 들어 설명하겠다.

  학생의 신상정보를 기록하는 저장소를 만든다고 가정하자. 학생의 이름, 나이, 주소 등등.. 입력할 수 있는 자료의 형태가 정해져 있고 종류가 한정된 상황에서는 튜플을 사용한다.

Minji= ('Minji', 18, '부산시 부산 어딘가', C'')


앞서 말한 것과 같이 튜플은 그 값을 변경할 수 없다.


>>> Minji= ('Minji', 18, '부산시 부산 어딘가', 'C')

>>> Minji[3]='B'

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: 'tuple' object does not support item assignment


** 튜플의 선언

- tup = () #값이 없을 경우

- tup = 1,2,3 #콤마(,)를 찍어 값을 입력

- tup = (1,2,3) # 괄호를 사용하여 입력


  반면에 리스트(list)는 자료의 개수가 몇개인지 모르는 열거형 자료를 저장할 때 사용한다. 또한 리스트는 저장된 값을 수정할 수 있다. 한 반에 김씨가 몇명인지 확인한다고 가정하자. 이 경우 김씨가 몇명인지 모르기 때문에 우리는 김씨성을 이름을 저장할 데이터형으로 리스트를 사용해야 한다.

  리스트는 한번 입력한 값을 변경하는 것이 가능하다. 

>>> list

[0, 2, 3, 2]

>>> list.append(4)

>>> list

[0, 2, 3, 2, 4]

>>> list.sort()

>>> list

[0, 2, 2, 3, 4]

>>> del list[1]

>>> list

[0, 2, 3, 4]

>>> list.append(1)

>>> list.sort()

>>> list

[0, 1, 2, 3, 4]


** 리스트의 선언

- list = [] #값이 없을 경우

- list = [1,2,3] #콤마(,)를 찍어 값을 입력




반응형

'Python' 카테고리의 다른 글

클래스, 인스턴스, 오브젝트  (0) 2017.09.07
Lamba  (0) 2017.08.24
반환문  (0) 2017.08.21
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Posted by newind2000
Python2017. 8. 24. 22:37

Lambda란 무엇일까?

Wikipedia를 뒤져보니 신화에 나오는 여성인데 발이 확 바꿔서 푹 튀어나왔다고 한다. 그래서 람다를 문자로 표현하면 'Λ' 요 모양이 된다. 하지만 프로그래밍에서는 함수를 간단하게 표현하는 식을 일컫는다.


lambda 인자: 표현식


예를 들어,  lambda a,b : a+b 요런식이고 인자를 넣을 요량이면,


>>> (lambda a,b:a+b)(3,2)

5


Python에서 제공해주는 'map' 함수는 인자로 함수와 리스트를 받는다. 말이 말리부같으니 함수 표현식으로 나타내면,


map(lambda x:x, list)


이렇게 된다. 그냥 이런게 있다고 넘길 수 있겠지만, C같이 저성능 언어를 사용하다보면 이놈이 얼마나 대단한 놈인지 알 수 있다. 반복문 안에 변수값을 변화시키며 함수에 넣는 코드를 저 한줄에 끝낼 수 있다는 말이다! 팬티가 축축해지는 느낌이 들었다면 당신은 프로그래머..


실제로 사용해보면 아래와 같다.


>>> map(lambda a: a*100, range(10,20))

[1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900]

>>> list(map(lambda a: a*100, range(10,20)))


이미 젖어 있는 그대에게 또 다른 엄청난 함수를 알려주겠다. 'reduce'라는 함수인데, 함수의 인자는 똑같지만 리스트에 있는 인자들을 함수에 계산하고 그 계산값에 결과 값에 다음 인자를 넣는 식이다. 말이 말보로이니 함수의 형식과 예제로 설명하겠다.


reduce(함수, 순서형 자료)


>>> reduce(lambda x,y:x*y, range(1,4))

6

1에서 3까지의 곱을 나타낸다. 


>>> reduce(lambda x,y:x*y, range(1,101))

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L


1부터 100까지의 곱이다. 벌써 가버리면 안된다. 다른 좋은 함수도 있다.


마지막으로 설명할 함수는 'filter'이다. 단어 뜻대로 걸러주는데 사용한다. 람다식에서 0이 아닌 값이 나오면 이것을 참으로 인식하여 그 값을 반환한다. 말이 마리오이니 함수의 형식과 예제로 이해해보자.


filter(함수, 리스트)


>>> filter(lambda x:x%3, range(10)) [1, 2, 4, 5, 7, 8]


예제를 보면 1-9까지의 수 중에서 3으로 나누어지는 수를 제외한 정수가 출력되었다. 즉 3으로 나누어지는 수는 그 값이 '0'이 됨으로 표시되지 않은 것이다. 이제 팬티를 갈아 입어도 된다.

반응형

'Python' 카테고리의 다른 글

클래스, 인스턴스, 오브젝트  (0) 2017.09.07
튜플과 리스트의 차이  (0) 2017.08.28
반환문  (0) 2017.08.21
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Posted by newind2000
Python2017. 8. 21. 23:10

Python에서는 함수의 반환값이 참인지 거짓인지 검사해주는 특별한 기능이 있다.

반환값에 판별식을 사용하여 그 함수의 반환값을 참과 거짓으로 구분 지을 수 있다.


>>> def plus(a, b):

...     ans=a+b

...     val=input('sum?')

...     return ans == val

...

>>> plus(1,2)

sum?3

True

>>> plus(1,2)

sum?2

False

반응형

'Python' 카테고리의 다른 글

튜플과 리스트의 차이  (0) 2017.08.28
Lamba  (0) 2017.08.24
지역변수와 전역변수  (0) 2017.08.21
변수의 사용  (0) 2017.08.21
Python 설치  (0) 2017.08.18
Posted by newind2000