728x90
파이썬은 함수 내부에서 함수 외부에 있는 변수를 참조하지 못한다.
함수 내부에서 함수 외부에 있는 변수라는 것을 설명하기 위한 구문
global 변수 이름
p243, 1번 문제: 내가 푼 것
def flatten(data):
output = []
for a in data:
if type(a) == list:
for b in a:
if type(b) == list:
for c in b:
output.append(c)
else:
output.append(b)
else:
output.append(a)
return output
example = [[1, 2, 3,], [4, [5, 6]], 7, [8, 9]]
print("원본:", example)
print("변환:", flatten(example))
교재 정답과 비교해봤는데 내가 매우매우 복잡하게 풀었다는 걸 알 수 있었다 ;;
다음에 재귀함수를 사용해서 다시 풀어봐야 겠다.
(재귀함수는 입사시험이나 진급시험에 나오기 때문에 잘 알고 있으면 좋다!)
강의 동영상:
n! = n * (n - 1)! 를 활용하여 재귀함수를 만드는 게 신기했다!
튜플: 리스트와 비슷한 자료형이지만, 한번 결정된 요소는 바꿀 수 없다는 차이점이 있다.
(데이터, 데이터, 데이터, ...)
# 요소가 하나만 있을 때
(데이터, )
# 괄호가 없는 튜플, 변수의 값 교환하기
a, b = 10, 20
a, b, = b, a
# 함수의 리턴과 튜플
def test():
return (10, 20)
a, b = test()
# a = 10, b = 20 할당된다
변수의 값을 교환할 때 a, b = b, a 라는 코드만으로 값이 바뀐다!
함수의 리턴에 튜플을 사용하면 여러 개의 값을 리턴하고 할당할 수 있다!
람다: 매개변수로 함수를 전달하는 것을 좀 더 효율적으로 작성할 수 있게 하는 기능 > 간단한 함수를 쉽게 선언하는 방법
lambda 매개변수: 리턴값
#함수의 매개변수로 함수 전달하기
def power(item):
return item * item
list_input_a = [1, 2, 3, 4, 5]
output = map(power, list_input_a)
print(list(output))
#인라인 람다
list_input_a = [1, 2, 3, 4, 5]
output = map(lambda x: x * x, list_input_a)
print(list(output))
람다를 활용하면 다음과 같이 함수를 선언하지않고 매개변수로 바로 넣을 수 있다!
반응형
'컴퓨터 & 코딩 > Python' 카테고리의 다른 글
[혼공학습단 8기][혼공파] 7주 동안의 혼공학습단 후기 (0) | 2022.08.16 |
---|---|
[혼공학습단 8기][혼공파] 6주차 과제 (0) | 2022.08.15 |
[혼공학습단 8기][혼공파] 5주차 미션 (0) | 2022.08.08 |
[혼공학습단 8기][혼공파] while 반복문 + <stdin> line 1 Syntax Error (3주차 보충) (0) | 2022.08.04 |
[혼공학습단 8기][혼공파] 딕셔너리와 for 반복문 (3주차 보충) (0) | 2022.07.29 |