PYTHON

    [Python] append vs extend (list의 append와 extend 차이점)

    파이썬 리스트에 새로운 원소를 추가하여 확장시킬 때 사용하는 함수인 append()와 extend()에 대해 살펴보고 두 메소드의 차이점을 알아보도록 하겠습니다. list를 생성 후 새로운 데이터를 삽입하려면 크게 세 함수를 활용하여 삽입 가능합니다. 바로 insert, append, extend인데요. 여기서는 가장 헷갈리는 append와 extend에 대해 알아보죠. 파이썬 list의 append는 list.append(x) 를 통해 리스트 맨 마지막 요소로 x를 추가할 수 있습니다. (append appends a specified object at the end of the list) 파이썬 list의 extend는 list.extend(iterable 객체) 를 통해 리스트 맨 마지막 요소로 i..

    [python] 던더함수, 더블언더스코어 의미 (__len__), (__contains__)

    파이썬에서 시작과 끝에 언더스코어(_) 2개가 붙은 함수를 본 적 이 있을 것입니다. 밑줄 두개가 뭍은 이 함수를 더블 언더스코어(double underscore) 또는 줄여서 던더(dunder)라고 합니다. 예를 들면 __len__ 이라는 던더 함수가 있을 때, 이를 던더 렌 또는 렌 던더라고 표현합니다. 이 함수는 특별하게 쓰일 수가 있는데요. 예를 들면, 클래스에 __len__()함수를 정의하면 클래스형의 인스턴스를 len()함수에 전달할 수 있게됩니다. 클래스형 인스턴스 obj가 있다고 가정하겠습니다. 인스턴스 obj에 대한 __len()__ 함수를 호출하는 obj.__len__() 은 간단하게 len(obj)로 작성할 수 있습니다. 또 다른 예를 들어보겠습니다. 클래스에 __contains__(..

    [python] 코사인 유사도를 이용한 추천시스템 - 기초

    코사인 유사도는 벡터의 '방향'이라는 특징으로만 벡터간 유사도를 구할 수 있습니다. 유클리드 거리는 방향은 무시한 채, 거리가 얼마나 가까운지에 기반하여 추천 시스템의 엔진이 되었죠. 두 추천 알고리즘 모두 완벽하거나 현재 이상적으로 활발하게 사용되는 추천 시스템은 아닙니다. 하지만 다른 고급(?) 알고리즘의 기초가 되는 만큼 간단하게 이해하고 넘어가는 것이 좋다고 생각합니다. 또한 NLP를 처음 공부한다면, Bag of Words에 기반한 단어 표현 방법인 Document Term Matrix, TF-IDF 등과 같이 단어를 수치화할 수 있는 방법을 알고 있다면, 코사인 유사도는 위 표현식에 아주 적용하기 쉬운 알고리즘입니다. 이를 기반으로 "문서의 유사도"를 구하는 게 가능합니다. 코사인 유사도는 기..

    [python] 함수 활용 시 매개변수가 뮤터블 vs 이뮤터블 일때..

    파이썬에서는 매개변수에 실제 인수가 대입된다. 복사가 아니라는 점을 명심해야한다. 파이썬에서 인수 전달은 실제 인수인 객체에 대한 참조를 값으로 전달하여 매개변수에 대입되는 방식이다. 다른 프로그래밍 언어에서는 실제 인수의 값을 매개변수에 복사하는 값에 의한 호출(call by value)를 사용하거나, 실제 인수의 참조를 매개변수에 복사하여 매개변수가 실제 인수와 같아지는 참조에 의한 호출 (call by reference)를 사용한다. 하지만 python은 객체 참조에 의한 전달(call by object reference)를 활용하는데, 위 2가지 호출의 중간 방식으로 인지하면 된다. 따라서 함수 생성 시, 1. 인수가 immutable 일 때: 함수 안에서 매개변수의 값을 변경하면 다른 객체를 생..