본문 바로가기

Programming/Python

(36)
lambda #Lambda Lambda는 함수를 간단하게 사용할 수 있도록 도와준다. 이는 이름이 없는 함수, 익명함수라고 하기도 한다. 이는 함수형 프로그래밍 언어에서의 lambda 와 정확히 똑같은 것은 아니지만, 파이썬 내에서 잘 통합되어 있으며 filter(), map(), reduce() 와 같은å 전형적인 기능 개념과 함께 사용되는 강력한 함수이다. lambda는 쓰고 버리는 일시적인 함수이다. 즉, 함수가 생성된 곳에서만 사용이 가능하다. lambda 인자리스트 : 표현식 g = lambda x: x**2 print(g(8)) #64 f = lambda x,y : x+y print(f(4,4)) #8 람다의 정의에는 return 문이 포함되어 있지 않다. 반환값을 만드는 표현식이 포함되어 있다. 함수가 ..
map_join_product zip() 파이썬 내장함수 zip()은 같은 길이의 iterable한 자료형를 같은 인덱스끼리 잘라서 반환해준다. for문을 이용해 다수의 리스트로 부터 값을 가져와서 처리해야 하는 경우 매우 유용히 사용된다. 모든 멤버의 type 변환하기 문제 설명 문자열 리스트를 입력받아, 해당 리스트를 정수형 리스트로 바꾼 값을 리턴하는 함수, solution을 만들어라. 예를들면, mylist가 ['1', '100', '33']인 경우, solution 함수는 [1, 100, 3]을 리턴하면 된다. 제한조건 1) mylist의 길이는 100이하 자연수이다. 2) mylist의 원소는 10진수 숫자로 표현할 수 있는 문자열이다. 즉, 'as2'와 같은 문자열..
sorted_zip 파이썬을 파이썬답게 원본을 유지한채, 정렬된 리스트 구하기 - sorted 파이썬의 sort()함수를 사용하면 리스트의 원소를 정렬할 수 있다. 이때, sort함수는 원본의 멤버 순서를 변경하지 않는다. 따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sort함수를 사용할 수 없다. 이러한 경우에는? 일반적인 경우, deep copy 또는 sort 함수를 이용한다. list1 = [3, 2, 1] list2 = [i for i in list1] # 또는 copy.deepcopy list2.sort()list1 = [3, 2, 1] list2 = sorted(list1)def solution(mylist): answer = list(map(list, zip(*mylist))) return ans..
int_just_ascii 파이썬을 파이썬답게 int(x, base) n진법 으로 표기된 string을 10진법 숫자로 변환하기 base 진법으로 표기된 숫자를 10진법 숫자 출력하라. 입력 입력으로는 공백으로 구분된 숫자가 두개 주어진다. 첫번쨰 숫자는 num 을 나타내며, 두번째 숫자는 base를 나타낸다. 출력 base진법으로 표기된 num을 10진법 숫자로 출력하라. 제한조건 base는 10이하 자연수이다. num은 3000이하 자연수이다. 예시 input output 12 3 5 444 5 12 4 나의 경우, 일단 test_case만 만족하자라는 생각으로 매우 무식하게 코드를 작성했다. num, base = map(int, input().split(' ')) result = 0 num = str(num) ..
Queues Queues 스택과 더불어 매우 빈번히 이용되는 자료구조 큐에 대해 공부해보자. 큐 또한 데이터 원소를 한 줄로 늘어세우는 자료구조, 즉 선형 자료구조라는 측면에서는 선형 배열, 연결 리스트, 스택과 마찬가지이지만 다른 특성을 가지고 있다. 스택에서는 어느 시점에서 스택에 들어있는 데이터 원소를 꺼낼 경우, 가장 최근에 넣었던 원소, 즉 스택 최상단에 자리잡고 있는 원소가 꺼내진다. 이러한 특징을 우리는 후입선출 (LIFO)이라고 앞서 공부한 바 있다. 큐에서는 스택과는 반대로, 어느 시점에서 큐에 들어있는 데이터 원소를 꺼내면 큐에 들어있는 원소 중 가장 먼저 넣었던 것이 꺼내진다. 따라서 큐를 선입선출 (FIFO)이라고도 부른다. 데이터 원소를 큐에 넣는 동작을 인큐 (enqueue)연산이라고 부르며..
divmod & packing & unpacking 파이썬을 파이썬답게 def answer(mylist): answer = [] for i in mylist: answer.append(len(i)) return answer def solution(mylist): return list(map(len, mylist)) 용어 정리 -Iterable : 자신의 멤버를 한 번에 하나씩 리턴할 수 있는 객체. list, str, tupe, dict...등이 여기에 속한다. -sequence : int 타입의 idx를 통해, 원소에 접근할 수 있는 객체로 Iterable의 하위 카테고리 list, str, tupe이 여기에 속한다. 몫과 나머지 - divmod 알고리즘 문제를 풀다 보면, 정수를 나눈 몫과 나머지를 구해야 할 때가 있다. 정수 a,b가 있을 때 보통 ..
Stack Stack 스택 자료를 보관할 수 있는 선형 자료구조 단, 넣을 때에는 한쪽 끝에서 밀어 넣어야하며 꺼낼때에도 같은 쪽에서 뽑아 꺼내야 한다. push & pop 후입선출 (LIFO - Last In First Out ) 구조 스택의 주요 연산은 push & pop 뿐인 간단한 자료구조이지만, 여러 가지의 알고리즘을 구현함에 있어 활용도가 높다. 예를 들어, 프로그램 내부에서 함수 호출이 일어나고 함수들이 리턴하면 마지막 호출 위치로 돌아가는 동작을 구현하는데도 스택이 이용된다. 스택에서 발생 가능한 오류 비어있는 스택에서 pop 시도 -> 스택 언더플로우 스택이 꽉 차있는 상태에서 push 시도 -> 스택 오버플로우 스택의 추상적 자료구조 구현 (1) 배열 (array) 를 이용하여 구현 - Pytho..
Doubly Linked Lists