반응형
튜플(tuple)
튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.
- 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
- 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.
강의 정리
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
|
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)
|
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 |