반응형
Jen'_'
Jen's Space
Email
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • Ansible (4)
      • 우아한앤서블 (4)
    • Cloud (19)
      • AWS (17)
      • GCP (2)
    • DevOps (40)
      • Docker (6)
      • Kubernetes (26)
      • CICD (6)
      • Terraform (2)
    • Language (13)
      • Python (12)
      • Node.js (1)
    • Linux (10)
    • etc. (7)
    • 개인기록 (1)
    • AEWS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 피드백 환영합니다 :)

인기 글

태그

  • INGRESS
  • 자격증
  • ALB
  • autoscaling
  • 우아하게앤서블
  • karpenter
  • jenkins
  • Kubernetes
  • k8s
  • 쿠버네티스
  • CICD
  • ansible
  • Docker
  • gitops
  • terraform
  • ubuntu
  • argocd
  • AWS
  • EKS
  • vagrant

최근 댓글

Jen'_'

Jen's Space

Python 강의 정리 7. 튜플, 람다(map(),filter() 예제)
Language/Python

Python 강의 정리 7. 튜플, 람다(map(),filter() 예제)

2021. 5. 3. 11:12
반응형

 

튜플(tuple)

튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.

  1. 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
  2. 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.

 

강의 정리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# 튜플: 리스트와 유사한 자료형, 한번 결정된 요소는 바꿀 수 없음
tuple_test=(10, 20, 30)
print(tuple_test)
print()
 
# 요소를 하나만 가지는 리스트
a = [273]
# 요소를 하나만 가지는 튜플
a = (273,)
 
# 리스트와 튜플의 특이한 사용
[a, b] = [10, 20]
(c, d) = (10, 20)
 
print("a:",a)
print("b:",b)
print("c:",c)
print("d:",d)
print()
 
# 튜플은 괄호 생략 가능, 리스트는 안됨
tuple_test = 10, 20, 30, 40
print("# 괄호가 없는 튜플의 값과 자료형 출력")
print("tuple_test: ", tuple_test)
print("type(tuple_test): ", type(tuple_test))
print()
 
a, b, c = 10, 20, 30
print("# 괄호가 없는 튜플을 활용한 할당")
print("a: ", a)
print("b: ", b)
print("c: ", c)
print()
 
# 변수의 값을 교환하는 튜플
a, b = 10, 20
print("# 교환 전 값")
print("a: ", a)
print("b: ", b)
print()
 
a, b = b, a
print("# 교환 후 값")
print("a: ", a)
print("b: ", b)
print()
 
# 리스트도 가능!
a, b = [10, 20]
a, b = b, a
print("a: ", a)
print("b: ", b)
print()
 
# 여러개의 값 리턴하기
def test():
    return (10, 20)
a, b = test()
print(a, b)
-----------
(result)
(10, 20, 30)
 
a: 10
b: 20
c: 10
d: 20
 
# 괄호가 없는 튜플의 값과 자료형 출력
tuple_test:  (10, 20, 30, 40)
type(tuple_test):  <class 'tuple'>
 
# 괄호가 없는 튜플을 활용한 할당
a:  10
b:  20
c:  30
 
# 교환 전 값
a:  10
b:  20
 
# 교환 후 값
a:  20
b:  10
 
a:  20
b:  10
 
10 20
 
Colored by Color Scripter
cs

 


 

람다(lambda)

- 함수를 한줄로 간결하게 만들 때 사용한다.

 

lambda 매개변수1, 매개변수2, .... : 매개변수를 이용한 표현식

 

def power(x)
  return x*x

      ↓

lambda x : x*x

 

 

 

강의 정리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# 매개변수로 받은 함수를 10번 호출하는 함수
def call_10_times(func): # func: 매개변수
    for i in range(10):
        func() # func(): 함수
 
def print_hello():
    print("치킨")
 
call_10_times(print_hello)
print()
 
# map(함수, 리스트): 리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트를 구성
# filter(함수, 리스트): 리스트의 요소를 함수에 넣고 리턴된 값이 True인 것만으로 새로운 리스트를 구성
# 둘다 제너레이터 -> 이터레이터(순환값)을 발생시킨다
def power(item):
    return item * item
def under_3(item):
    return item < 3
list_a = [1, 2, 3, 4, 5]
 
# map() 함수 사용
output = map(power, list_a)
print("# map()함수의 실행 결과")
print("map(power, list_a): ", output) # 메모리 주소값 반환
print("map(power, list_a): ", list(output)) # 이터러블로 만들어 줘야함
print()
 
# filter() 사용
output = filter(under_3, list_a)
print("# filter()함수의 실행 결과")
print("filter(under_3, list_a): ", output)
print("filter(under_3, list_a): ", list(output)) # 이터러블로 만들어 줘야함
print()
 
# 람다를 사용하면 위의 함수들이 더욱 간결해짐
power = lambda x : x*x
under_3 = lambda x : x<3
 
list_a = [1,2,3,4,5]
 
output = map(power, list_a)
print("# map()함수의 실행 결과")
print("map(power, list_a): ", output)
print("map(power, list_a): ", list(output))
print()
 
# 람다 예제 
numbers = list(range(1, 11))
print("# 홀수만 추출하기")
print(list(filter(lambda x : x % 2 == 1, numbers)))
print("\n # 3 이상, 7 미만 추출하기")
print(list(filter(lambda x : 3 <= x < 7, numbers)))
print("\n # 제곱해서 50 미만 추출하기")
print(list(filter(lambda x : x**2 < 50, numbers)))
print(tuple(filter(lambda x : x**2 < 50, numbers))) # 튜플도 가능!
---------
(result)
치킨
치킨
치킨
치킨
치킨
치킨
치킨
치킨
치킨
치킨
 
# map()함수의 실행 결과
map(power, list_a):  <map object at 0x000001FA20AE7B50>
map(power, list_a):  [1, 4, 9, 16, 25]
 
# filter()함수의 실행 결과
filter(under_3, list_a):  <filter object at 0x000001FA20AF43A0>
filter(under_3, list_a):  [1, 2]
 
# map()함수의 실행 결과
map(power, list_a):  <map object at 0x000001FA20AB9D60>
map(power, list_a):  [1, 4, 9, 16, 25]
 
# 홀수만 추출하기
[1, 3, 5, 7, 9]
 
 # 3 이상, 7 미만 추출하기
[3, 4, 5, 6]
 
 # 제곱해서 50 미만 추출하기
[1, 2, 3, 4, 5, 6, 7]
(1, 2, 3, 4, 5, 6, 7)
Colored by Color Scripter
cs

 

반응형
저작자표시 (새창열림)

'Language > Python' 카테고리의 다른 글

Python 강의 정리 마지막. 클래스  (0) 2021.05.03
Python 강의 정리 8. if __name__ == "__main__":  (0) 2021.05.03
Python 강의 정리 6. 함수  (0) 2021.05.03
Python 강의 정리 5. 리스트 뒤집기, enumerate() 함수  (0) 2021.05.02
Python 강의 정리 4. 반복문(for문,while문), 딕셔너리  (0) 2021.05.02
    'Language/Python' 카테고리의 다른 글
    • Python 강의 정리 마지막. 클래스
    • Python 강의 정리 8. if __name__ == "__main__":
    • Python 강의 정리 6. 함수
    • Python 강의 정리 5. 리스트 뒤집기, enumerate() 함수
    Jen'_'
    Jen'_'
    DevOps 엔지니어 Jen의 기술 블로그 / 이메일: jenakim47@gmail.com

    티스토리툴바