분류 전체보기 61

[Python] 람다(Lambda) 함수

람다(lambda) 함수 파이썬에서는 람다함수를 통해 이름이 없는 함수를 만들 수 있습니다. 람다함수의 장점은 코드의 간결함 메모리의 절약이라고 생각할 수 있습니다. def키워드를 통해서 함수를 생성하는 방법은 리터럴 표기법에 따른 함수 생성 방법입니다. 함수 또한 클래스를 통해 생성된 객체 인스턴스입니다. def my_func(): pass 위에 함수를 생성자를 통해 생성하는 방법을 간단하게 표현하면 다음과 같습니다. my_func = function(code, globals[, name[, argdefs[, closure]]]) 코드와 이름을 담아서 함수클래스를 통해서 객체를 생성하고, 그 객체를 함수이름과 동일한 변수에 담는과정을 def키워드가 대신해줍니다. 함수객체를 변수에 담은 시점에서, 함수객..

카테고리 없음 2021.06.30

[Python] 정렬 알고리즘 - 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬

정렬 알고리즘 - Sort Algorithm 정렬은 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다. 프로그램에서 데이터를 가공할 때 오름차순이나 내림차순 등 대부분 어떤 식으로든 정렬해서 사용하는 경우가 많기에 정렬 알고리즘은 프로그램을 작성할 때 가장 많이 사용되는 알고리즘 중 하나다. 정렬 알고리즘으로 데이터를 정렬하면 이진 탐색(Binary Search)이 가능해진다. 정렬 알고리즘은 이진 탐색의 전처리 과정이기도 하다. 정렬 알고리즘은 굉장히 다양한데 이 중에서 많이 사용되는 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬에 대해 알아보려고 한다. 선택 정렬 - Selection Sort 설명 컴퓨터가 데이터를 정렬할 때 어떻게 할지 한번 생각해보자. 데이터가 무작위로 여러 개 있을 ..

Python 2021.06.30

[Python] collections 모듈 - deque

collections 모듈 - deque Python의 데크(deque)라는 자료구조에 대해 알아보고, 어떤 상황에서 사용해야 하는지에 대해 살펴본다. 데크(deque)의 개념 보통 큐(queue)는 선입선출(FIFO) 방식으로 작동한다. 반면, 양방향 큐가 있는데 그것이 바로 데크(deque)다. 즉, 앞, 뒤 양쪽 방향에서 엘리먼트(element)를 추가하거나 제거할 수 있다. 데크는 양 끝 엘리먼트의 append와 pop이 압도적으로 빠르다. 컨테이너(container)의 양끝 엘리먼트(element)에 접근하여 삽입 또는 제거를 할 경우, 일반적인 리스트(list)가 이러한 연산에 O(n)이 소요되는 데 반해, 데크(deque)는 O(1)로 접근 가능하다. 데크(deque) 사용법 데크는 다음처럼..

카테고리 없음 2021.06.29

[Python] List to String, 리스트를 문자열로 변경하기

List to String, 리스트를 문자열로 변경하기 파이썬에서 리스트를 문자열로 변경하는 두 가지 방법에 대해 알아보자. 1) Join 메소드를 이용하는 방법 2) for문을 이용하는 방법을 통하여 배열을 문자열로 변경할 수 있다. - Join 메소드를 이용하는 방법 파이썬의 String 클래스는 'join(list)' 메소드를 제공하고 있다. join 메소드를 이용하면 리스트를 구성하고 있는 각각의 캐릭터들을 하나의 문자열 형태로 변경해서 반환해준다. 다음과 같이, seperator.join(iterable)의 형식으로 사용하면 된다. list = ['a', 'b', 'c'] print(''.join(list)) # abc print(','.join(list)) # a,b,c 지정된 구분자로 구분되..

Python 2021.06.23

[Python] 2차원 리스트 생성 및 입력 받기

[Python] 2차원 리스트 생성 및 입력 받기 1. 2차원 리스트의 구조 2차원 리스트는 1차원 리스트를 묶어놓은 구조로, 많이 사용되는 자료구조 중 하나이다. 2차원 리스트의 선언은 세로길이(행의 개수), 가로길이(열의 개수)를 필요로 한다. ex) 2행 4열의 2차원 리스트 a = [ [0, 1, 2, 3], [4, 5, 6, 7] ] 0 1 2 3 4 5 6 7 이제 리스트를 선언하고 초기화 하는 방법에 대해 알아보자. 2. 리스트 초기화 arr = [0, 0, 0, 0, 0] arr = [0] * 5 arr = [i for i in range(2, 9) if i % 2 == 0] # [2, 4, 6, 8] brr = [[1, 2, 3], [1, 2, 3], [1, 2, 3]] brr = [[1..

Python 2021.06.22

[Python] List Comprehension

List Comprehension Comprehension 이란 iterable한 오브젝트를 생성하기 위한 방법중 하나로 파이썬에서 사용할 수 있는 유용한 기능중 하나이며, 파이썬은 다음과 같이 4가지의 Comprehension 기능을 제공합니다. List Comprehension Set Comprehension Dict Comprehension Generator Expression 이 중 가장 많이 활용되는 List Comprehension에 대해서 알아보려고 합니다. for문을 활용한 list comprehension List Comprehension 은 리스트 안에서 for 문과 if 문을 이용하여 보다 편리하게 리스트를 작성하고 처리할 수 있게 해줄 수 있다. List Comprehension의 ..

Python 2021.06.08

[Python] 리스트 항목 정렬하기 sorted, sort, reverse

Python List 의 value 정렬(sorting) 하는 방법 2가지 1. 원본 리스트의 변경 없이, 리스트를 정렬하는 방법 sorted 함수 lists는 리스트 변수입니다. 이 리스트를 정렬하려면, sorted() 함수를 사용하면 됩니다. 다음과 같이 새로운 리스트 변수인 new_lists를 만들어서 저장하면 됩니다. sorted() 함수는 원본인 lists의 변경 없이, new_lists에만 정렬된 리스트를 저장할 수 있습니다. lists = ["Apple", "Banana", "Mango", "Pineapple", "Coconut", "Orange", "Strawberry"] new_lists = sorted(lists) print(new_lists) # 결과 ['Apple', 'Banana'..

Python 2021.06.07

[Python] 소수점 자리수의 출력 - round() vs format()

소수점 자리수의 출력 - round() vs format() 파이썬은 반올림을 하는 round() 함수를 내장하고 있습니다. 그러나 round() 함수는 끝자리가 0이면 출력을 하지 않는 문제가 있습니다. print(round(3.14159, 2)) # 결과 3.14 print(round(3.10159, 2)) #결과 3.1 +) 올림 또는 내림을 하는 math.ceil과 math.floor 은 정수만 반환합니다. 따라서 원하는 출력형식을 엄격하게 준수하려면 format() 함수를 사용해야 합니다. format() 함수는 format(item, 폭(width).정밀도(precision)f)의 형태로 사용하면 됩니다. print(format(3.10159, ".2f")) # 결과 3.10 즉, 다음과 같은..

Python 2021.06.07

[Python] 16진수 입력받기, 16진수 구구단

- 16진수 입력은 int(n,16) 이렇게 int의 두 번째 인자에 원하는 진수를 적으면 된다. - 16진수 출력은 print('%X' %n) 으로 할 수 있다. 이는 n의 값을 X로 16진수로 변환해서 출력한다는 의미이다. [ 코드 ] n = input() n = int(n, 16) for i in range(0, 16): print("%X" % n, "*%X" % i, "=%X" % (n * i), sep="") # '%X'는 16진수로 출력한다는 의미 # sep=''을 추가하면 공백 없이 출력됨. # 결과 B*1=B B*2=16 B*3=21 B*4=2C B*5=37 B*6=42 B*7=4D B*8=58 B*9=63 B*A=6E B*B=79 B*C=84 B*D=8F B*E=9A B*F=A5 (참고)..

Python 2021.06.07

[Python] 정수 여러개 동시에 입력받기 (map 함수)

정수 여러개 동시에 입력받기 파이썬에서 그냥 변수를 여러개 입력받는 것은 쉽습니다. a, b, c = input().split() 이런 식으로 split()을 이용하여 여러 개 입력받을 수도 있습니다. 하지만 파이썬에서는 기본적으로 input()을 사용하면, 문자열 형식으로 입력받기 때문에 정수를 입력받고 싶을 때는 이런 형식을 사용합니다. a = int(input()) 하지만, 문제는 여러개의 정수를 입력받고 싶을 때 int를 사용하면, split()은 기본적으로 리스트로 나누어 주기 때문에 형변환이 이루어지지 않아 컴파일 에러가 발생합니다. a ,b = int(input().split()) # TypeError 발생 이럴 때 사용하는 것이 map() 함수입니다. a, b, c = map(int, in..

Python 2021.06.05