🧮Programming/Python

스택 Stack Python에서 내장 Module에는 Stack만을 지원하는 기능은 없지만, 기본 List 자료구조를 이용하면 아주 간단하게 Stack을 사용할 수 있습니다. stack = [0, 1, 2] print(stack) stack.append(3) print(stack) stack.pop() print(stack) ''' [0, 1, 2] [0, 1, 2, 3] [0, 1, 2] ''' 큐 Queue Python에서 Queue는 dequeue로 구현하면 시간 복잡도가 O(1)이 걸리지만 List로 구현하면 O(N)이 걸립니다. 아래와 같이 앞에서 추출한 데이터의 주소에 이전 데이터들을 이전하는 작업이 동반되어 시간 복잡도가 증가하는 것입니다. 양방향 연결 리스트(Deque)로 Deque를 구현..
이번 시간에는 파이썬 딕셔너리에 대해서 알아보도록 하겠습니다! 딕셔너리에 관한 양이 많다는 생각이 들어 다른 분의 블로그를 참고하여 정리해보도록 하겠습니다. 파이썬에서 딕셔너리는 각 키에 대응하는 값을 저장하는 구조입니다. 키(key)와 값(value)은 쌍으로 구성되어 있어, 키를 사용하여 값에 쉽게 접근할 수 있습니다. 딕셔너리(Dictionary)란? 딕셔너리는 키와 값의 쌍으로 구성된 자료구조입니다. 키는 유일해야 하며 값은 중복이 허용됩니다. 딕셔너리는 중괄호( {} )로 표현하며, 키와 값은 콜론(:)으로 구분합니다. 딕셔너리는 리스트와는 다르게 순서가 없습니다. Python 3.6부터 딕셔너리를 구현하는 내부 구조 변경으로 인해, 입력 순서를 저장합니다. 또한, 튜플과 다르게 변경이 가능합니..
많은 내용은 아니지만 유용하게 쓰일거같아 내용을 저장하려고 글을 쓰게 되었습니다. 처음 입력값이 1 2 3 4 라고 가정했을 때 [[1,0],[2,1],[3,2],[4,3]]로 만들려고 했습니다. arr = list(map(int,input().split())) for i in range(n): arr[i].append(i) 이렇게 코드를 짰는데, 저 입력 값을 넣게 되면 arr[i]가 tuple타입이라 append를 사용하는 것이 불가능 하다는 에러가 발생합니다. 현재 arr의 상황은 [1,2,3,4]로 구성되어 있으며, 리스트 안에 리스트가 만들어지지 않았기 때문입니다. 저 문제를 해결하기 위해 arr를 입력 받을때 부터 다중 리스트로 만들어야겠다고 생각했습니다. arr = [[int(i)] for ..
항상 람다함수는 어렵다는 편견이 있었고 써본적이 많이 없어서 쓰기를 꺼려해왔지만 한번 부딪쳐보자 라는 생각으로 공부해보겠습니다! 람다함수란? 먼저 람다 표현식은 식 형태로 되어 있다고 해서 람다 표현식(lambda expression)이라고 부릅니다! 람다 표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용합니다. 람다 표현식으로 10씩 더해주는 일반 함수를 만들어 보겠습니다. def plus_ten(x): return x + 10 plus_ten(1) #결과 = 11 이렇게 구성된 함수를 다음과 같은 공식을 이용하여 람다 표현식으로 만들어보겠습니다. - lambda 매개변수들 : 식 lambda x : x+10 하지만 print(lambda x:x+10) 이렇게 출력을 했..
이번 시간엔 파이썬의 정렬 함수에 대해서 더욱 깊게 알아보는 시간을 가져보겠습니다! sort 함수 원형을 변형시켜 정렬합니다. 변수.sort() 형태로 사용하고, 리스트에서만 사용 가능합니다! 정렬 기준 문자열은 알파벳,가나다 순 숫자는 오름차순이 default값입니다. sorted 함수 이것 역시 sort와 같은 정렬을 하지만 큰 차이점은 sort는 원형이 정렬되어 변형되지만 sorted는 원형을 변형시키지 않고 정렬된 결과를 반환시켜 준다는 특징이 있습니다. sorted는 리스트 및 다른 자료형에도 사용 가능합니다! 정렬 기준은 sort와 동일합니다. Parameter sort, sorted 모두 reverse, key 매개변수를 갖고있습니다. - reverse 기본 값은 reverse = False..
map함수는 파이썬의 기초이지만 기초여서 자세히 공부를 하지 않았던것 같습니다. 이번 기회에 map함수에 대해서 깊게 공부해 보도록 하겠습니다! 👩‍💻map함수 map(function, iterable) map 함수의 모양은 위와 같습니다. 첫 번째 매개변수로는 함수가 오고 두 번째 매개변수로는 반복 가능한 자료형(리스트, 튜플 등)이 옵니다. map 함수의 반환 값은 map 객체이기 때문에 콘솔창에서 쉽게 볼 수 없기 때문에 해당 자료형을 list 혹은 tuple로 변환시켜주어야 합니다. 💪map함수의 특징 지연평가(lazy evaluation) 방식: map() 함수는 lazy evaluation 방식을 사용합니다. lazy evaluation이란 필요한 시점까지 연산을 늦추는 방식으로, 불필요한 연..
이번 시간엔 출력에 관한 것을 공부하면서 새로 알게된 join함수에 대해서 알아보겠습니다! 함수의 모양은 다음과 같습니다. ''.join(리스트) (작은 따옴표 두개입니다) '구분자'.join(리스트) join 함수는 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수입니다. ''.join(리스트) ''.join(리스트)를 이용하면 매개변수로 들어온 ['a', 'b', 'c'] 이런 식의 리스트를 'abc'의 문자열로 합쳐서 반환해줍니다. -'구분자'.join(리스트) '구분자'.join(리스트)를 이용하면 리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합쳐줍니다. 예시 '_'.join(['a', 'b', 'c']) 라 하면 "a_b..
순열 순서대로 뽑아내는 것이며, 수학에서 nPr과 동일합니다. from itertools import permutations arr = ['a','b','c'] print(permutations(arr)) arr를 a,b,c 로 이루어진 문자배열이라고 했을때, arr를 permutation하여 출력하면 다음과 같이 내부를 알 수 없는 객체 형식으로 출력되기 때문에 list로 변환해주는 작업을 거쳐야 합니다. from itertools import permutations arr = ['a','b','c'] print(list(permutations(arr))) 다음과 같이 순서가 적용 된 순열이 출력됨을 확인할 수 있습니다. 이것을 'abc', 'acb'형식의 문자열로 출력하고 싶다면 from iterto..
ggami99
'🧮Programming/Python' 카테고리의 글 목록