본문 바로가기

Python6

[Python] immutable vs mutable 객체의 차이 객체가 지닌 값의 수정이 불가능한 객체를 immutable 객체라 하고 대표적으로 튜플과 문자열이 있다. 반면에 객체가 지닌 값의 수정이 가능한 객체를 mutable 객체라고 한다. 예로는 리스트와 딕셔너리가 있다. 이를 확인해 볼 수 있는 예제를 살펴보자. immutable 객체 >> r = [1, 2, 3] >> id(r) 1753454201600 >> r += [4, 5, 6] >> id(r) 1753454201600 이처럼 리스트에 다른 값들을 추가시켜도 주소가 바뀌지 않았음을 알 수 있다. 즉 r (리스트) 원본은 유지가 되고 값을 추가시킬 수 있음을 의미한다. 그렇다면 mutable 객체를 살펴보자 mutable 객체 >> t = (1, 2, 3) >> id(t) 1753454302080 >>.. 2021. 10. 19.
[Python3] dict의 다양한 생성방법과 zip() 함수 딕셔너리의 다양한 생성 방법과 zip() 함수를 이해해보자. 1. 딕셔너리의 기본적인 생성 방법은 다음과 같다. >>> d = {'a' : 1, 'b': 2, 'c': 3} >>> d {'a': 1, 'b': 2, 'c': 3} 2. dict() 함수를 이용하는 방법 >>> d = dict([('a', 1), ('b', 2), ('c', 3)]) >>> d {'a': 1, 'b': 2, 'c': 3} 3. 키가 문자열인 경우 딕셔너리를 생성하는 방법 >>> d = dict(a=1, b=2, c=3) >>> d {'a': 1, 'b': 2, 'c': 3} 4. zip() 함수를 이용하는 방법 >>> d = dict(zip(['a', 'b', 'c'], [1, 2, 3])) >>> d {'a': 1, 'b'.. 2021. 2. 10.
[Python3] 문자열 관련 함수 총정리! 파이썬을 이용하여 알고리즘 문제 풀이를 하고 있다면 문자열 처리와 관련해서 파이썬은 상당한 이점을 가지고 있다. C/C++, JAVA 등의 기타 언어와는 다르게 문자열 관련 함수가 상당히 많고 다양하다. 이를 활용하는 것은 알고리즘 문제 풀이에 있어서 아주 강력한 도구가 된다고 생각한다. 아주 일부분이겠지만 말이다ㅠㅠ 몇 개 없는 함수 모두 정리해보는 시간을 가져보자!! 여기서 한 가지 개념적으로 알아야 할 것은 Python에서 문자열은 불변 객체이므로 기존의 문자열을 수정 한 객체를 반환하는 것이 아닌 새로운 객체를 생성하고 반환한다는 것이다. (여기서 객체라고 하면 문자열이다.) 1. capitalize() 문자열의 첫 번째 문자를 대문자로 바꾸고 나머지 문자에 대해서는 소문자로 변환한 문자열을 반환.. 2021. 2. 9.
[Python] 비트 연산 [Python] 비트 연산 Python3 비트 연산이 C/C++과는 조금 차이가 있는 것 같아서 비트 연산자에 대해서 다루어 보려고 한다. 다음과 같은 명령문이 있을 때 출력 결과를 살펴보도록 하자. >>> bin(0b0101 ^ ~0b1100) '-0b1010' 반환 값은 문자열이며 bin 함수를 통해서 2진수로 출력되었다. 또한 앞에 - 부호가 들어간 것을 알 수 있다. 크기는 10이다. 나는 처음 결과를 생각하기를 ~0b1100 은 0b0011이 되겠거니 생각을 해서 (0b0101 ^ 0b0011) XOR 연산 결과 '0b0110' 라고 단순히 생각을 했다. 보기와 다르게 결과는 그렇지 않다. 그렇다면 어디가 잘못된 것일까? ~연산자를 이해하기 위해서는 2의 보수를 이해하고 있어야 한다. 잠시 다음.. 2021. 2. 6.
[Python] 딕셔너리 모듈 [Python] 딕셔너리 모듈 딕셔너리와 관련된 특수한 컨테이너 자료형인 defaultdict, Counter, OrderedDict에 대해 알아보자. 추가로 딕셔너리의 내장 함수인 setdefault() 함수에 대해서도 알아보자. dict = {'a' : 1, 'b' : 2, 'c': 3} dict --------------------------------- {'a': 1, 'b': 2, 'c': 3} dict['c'] += 1 dict['d'] += 1 ## 해당 키가 존재 하지 않으면 예외가 발생한다. --------------------------------------------------------------------------- KeyError Traceback (most recent cal.. 2020. 12. 31.
[Python] map & filter [Python] map & filter 사용법 map map 함수를 모른다고 가정하고 리스트 a의 값들을 각각 곱하기 2를 하여 리스트를 생성하고자 한다면 밑에 코드와 같은 방법을 사용하거나 혹은 반복문을 이용하여 리스트를 만들 것이다. def mul(n): return n * 2 a = [1, 2, 3, 4, 5] b = [mul(a[0]), mul(a[0]), mul(a[0]), mul(a[0]), mul(a[0])] # 2 4 6 8 10 하지만 map 함수를 이용하면 아주 간단하게 생성할 수가 있다. def mul(n): return n * 2 a = [1, 2, 3, 4, 5] b = list(map(mul, a)) # [2, 4, 6, 8, 10] cs 이렇게 a의 값들을 모두 mul 함수에 .. 2020. 8. 14.