Unit30. *args / **kwargs (가변인자; Variadic Parameters)
인자 Argument에는 두 종류가 있다. 그리고 항상 함수를 실행시키는 인자를 줄 때에는, positional은 필수조건이므로 무조건 줘야 하고, 앞에 줘야하고, keyword는 필수가 아니므로 안주면 생략가능하고, positional갯수를 채운 뒤에 줘야한다. Positional arguments : 정해지는 인자 ; first, second Keyword arguments : 키워드로 잡는 인자 ; third, fourth 코드로 보면, def save_ranking(first, second, third=None, fourth=None): .... save_ranking('Alice', 'Bella', 'Mike', fourth = 'Daniel') 이렇게 될 때, Positinal 두개 다 채워서..
2022. 11. 29.
참고) map + lambda
lambda (원래모습 : 바뀐모습) print( (lambda x,y: x + y)(10, 20) ) 인자까지 한꺼번에 줄 수있음 map (def명, 넣을것) 순회가능한 데이터를 저 함수에 넣어 ouput을 도출하겠다. 는 뜻. map(변환 함수, 순회 가능한 데이터) map은 꼭 list로 변환해줘야 값을 볼 수 있음. def list_mul(x): return x * 2 result = list(map(list_mul, [1, 2, 3])) print(result) lambda + map map이 lambda 식 자체를 인수로 가짐. i 를 i*2로 바꿀꺼고 (lambda), [1,2,3]을 i로 돌릴꺼야 (map) result = list(map(lambda i: i * 2 , [1, 2, 3])..
2022. 11. 29.
참고) Enumerate/Yield/Generator/Try/Accept/Multiprocessing
Enumerate for문에서 인덱스도 같이 출력할 때. for i, value in enumerate(리스트명) my_list = ['a','b','c','d'] for i, value in enumerate(my_list): print("순번 : ", i, " , 값 : ", value) Generator, yield yield를 쓰면 generator로 연결된다. generator는 lazy iterator. 반복문을 출력할 때에도 주르륵 출력하는 것이 아니라, 하나 출력하고 쉬고, 하나 출력하고 쉬고. 데이터가 많을 때 메모리 사용이 효율적이어서 자주 사용하는 파이썬의 기능. 참고 사이트 : https://www.daleseo.com/python-yield/ 파이썬의 yield 키워드와 제너레이터..
2022. 11. 29.
Unit 26. 세트(set)
Set : 집합 합집합, 교집합, 차집합등의 연산을 가능케 하는 집합으로 {값1,값2,값3} 이런식ㅇ로 이루어져 있음. 출력을 할 때에는 randomly하게 출력하기 때문에, index를 지정하여 출력이 불가하고, 집합안에 중복된 것은 알아서 하나만 출력. 딕셔너리와 형태 주의하여 쓰기 >>> c = {} # 이렇게 빈 중괄호를 치면, 빈 딕셔너리가 됨. >>> type(c) >>> c = set() # 꼭 이렇게 set()이라고 지정해야 세트가됨. >>> type(c) set.union(세트1, 세트2) : 합집합 {1,2,3,4,5,6} 논리연산자 and와 같은 원리 set.intersection(세트1,세트2) : 교집합 {3,4} set.difference(세트1, 세트2) : 대칭차집합 {1,2..
2022. 11. 28.
조별학습) 구구단 만들기
내답안 조원들 답안 count, %d , % 사용 print(f' ') .format 사용 format 복습 '{인덱스}' .format(값) : { } 이 위치에 format 뒤의 데이터의 인덱스 값을 넣어줘. ' Let me see.. {1} {2} {0}?'. format('me', 'You', 'love') 그래서 print('{0} x {1} = ', format(i,j), i*j) '{0} x {1} = ' . format(i,j) 까지 한뭉텅이로, format 뒤에 (i,j) 인수를 넣어줌
2022. 11. 28.
Unit 22. 2차원 리스트
1. 기본문법 요소 추출 : 리스트[세로인덱스][가로인덱스] 요소 값 할당 : 리스트[세로인덱스][가로인덱스] = 값 >>> a = [[10, 20], [30, 40], [50, 60]] >>> a[2][1] # 출력 : 세로 인덱스 2, 가로 인덱스 0인 요소 60 >>> a[0][1] = 1000 # 값 할당 : 세로 인덱스 0, 가로 인덱스 1인 요소에 >>> a[0][1] 1000 2차원 리스트와 튜플 수정 가능여부 a = ((10, 20), (30, 40), (50, 60)) # 튜플 안에 튜플을 넣은 2차원 튜플 b = ([10, 20], [30, 40], [50, 60]) # 튜플 안에 리스트를 넣음 c = [(10, 20), (30, 40), (50, 60)] # 리스트 안에 튜플을 넣음 ..
2022. 11. 25.
참고) Stack & Queue
이 둘은 ADT로써 실물이 존재하지 않는 "상상속의 구조"이다. ADT (Abstract Data Type) : 추상적 자료구조 자료구조의 방법이 코드로 정의되지 않고 그 구조의 행동양식으로만 규정됨. array + 규칙. 서로 규칙이 다름. 1. Stack (팬케이크 무더기) Last In, First Out. stack은 무더기라는 뜻이다. 1,2,3,4,5 array를 90도로 눕여서 1을 가장 아래, 5를 가장 위로 놓는다. 가장 따끈한 팬케이크가 제일 위에 쌓이고 (Last in), 제일 빨리 먹히는 것 처럼(First out) 5번만 읽고, 삭제가능. e.g. 뒤로가기, ctr+z, 2. Queue (맛집에 줄선 사람들) First in, First Out. stack과 달리 90도 뒤집지 않..
2022. 11. 25.
참고) Scalar, Vector, Matrix, Tensor
1. Scala : 단일 숫자 / 0차 텐서 / 소문자 normal n : 양의 정수 집합 (1,2,3..) z : 양,음수와 0의 집합 (...,-2,-1,0,1,2,...) q : 유리수 (z + 분수) 값 (Value)을 나타냄 2. Vector : Scala의 배열 / ordered arrays / 1차 텐서 / 소문자 Bold Scala는 값 1개만 나타낸다면, Vector는 크기와 방향, 속도와 거리, 속도와 속도차, 텍스트에서 단어간의 연관성, 이미지에서의 픽셀 집적도 (intensity) 등을 인코딩할 수 있게 함. 머신러닝에서는 feature vector라고 표현되기도 함. (Which are their individual components specifying how important ..
2022. 11. 24.