코딩
-
Python/아름다운 람다식(Lambda Expression)과 지연 함수코딩/Python 2023. 5. 20. 23:46
람다식(Lambda Expression)과 지연 함수 람다식은 익명 함수를 생성하기 위한 간결하고 강력한 방법으로, 파이썬에서도 많이 활용된다. 람다식 람다식은 함수를 간결하게 표현하기 위한 방법. 일반적으로 함수를 정의하고 호출하는 과정을 거치지 않고, 한 줄로 함수를 표현할 수 있다. 람다식은 주로 고차 함수와 함께 사용되며, 함수를 인자로 전달하거나 반환하는 등의 유연한 프로그래밍을 가능하게 한다. 구문 lambda 매개변수: 표현식 lambda: 람다식을 정의하는 키워드. 매개변수: 함수에 전달되는 입력값. 표현식: 함수의 결과를 반환하는 식. 지연 함수 지연 함수는 람다식과 고차 함수를 결합한 개념으로, 함수의 계산을 필요한 시점까지 지연시키는 방식. 이는 특히 대량의 데이터를 다룰 때 유용하며..
-
[Python] 문자열이나 배열을 뒤집는 방법코딩/Python 2023. 5. 3. 12:23
문자열 또는 배열을 뒤집는 방법을 설명한다. 첫번째 방법 [::-1]a = 'abcde'b = a[::-1]c = [1, 2, 3, 4, 5]d = c[::-1]a[::-1]은 새로운 리스트를 반환한다.첫번째 : 는 모든 원소를 선택한다는 의미이고, 두번째 : 는 스텝사이즈를 의미한다.스텝사이즈를 -1로 정했기 때문에 역순으로 리스트를 반환한다. 이 경우에는 원본리스트는 수정하지 않고 새로운 리스트를 생성시켜 b에 반환한다.만일 원본리스트를 수정해서 재사용하려면 reverse() 메서드를 사용한다. 두번째 방법 reverse()a = [1,2,3,4,5]a.reverse()reverse()는 원본 리스트를 변경하므로, 대량의 리스트를 바꿀 때 메모리를 아껴서 사용할 수 있다.문자열은 reverse() 메..
-
[파이썬] inplace 사용법코딩/Python 2023. 4. 13. 12:37
파이썬에서 inplace는 기존의 데이터를 직접 수정하거나 대체하는 것을 의미한다. 즉, inplace 옵션을 사용하면 변수의 값이 직접 변경된다. 이것은 일반적으로 복사본을 만드는 대신 메모리를 더 효율적으로 사용하고 코드를 더 간결하게 만드는 데 사용된다. 예를 들어, 리스트에서 특정 값을 삭제하려면 remove() 메서드를 사용할 수 있다. 그러나 remove()는 리스트의 복사본을 만들어서 값을 삭제하고 새로운 리스트를 반환한다. 이 때 inplace=True 옵션을 사용하면 메모리를 더 효율적으로 사용하면서 기존의 리스트를 직접 수정할 수 있다. 하지만 inplace 옵션을 사용할 때 주의해야 할 점이 있다. 기존의 데이터가 변경되기 때문에 예기치 않은 결과가 발생할 수 있다. 따라서 inpla..
-
[파이썬] 코드의 함수화 또는 블럭화에 대해 ChatGPT와 대화코딩/Python 2023. 4. 12. 14:43
파이썬 프로그래밍에서 기능별로 함수화한 코딩이 유리한가, 전체적으로 펼쳐 코딩하는게 유리한가? 파이썬 프로그래밍에서 기능별로 함수화한 코딩이 전체적으로 펼쳐 코딩하는 것보다 일반적으로 더 유리합니다. 함수화는 코드를 모듈화하고, 중복 코드를 제거하고, 코드의 가독성을 높이며, 유지보수를 쉽게 해줍니다. 함수를 사용하면 다른 부분과 분리된 코드를 작성하므로, 코드 수정과 유지 보수 작업이 쉬워지고, 디버깅이 쉽습니다. 또한, 함수를 사용하면 높은 재사용성을 얻을 수 있습니다. 여러 곳에서 동일한 코드를 사용해야 할 때, 함수로 작성된 코드를 사용하면 코드를 재작성할 필요 없이 함수를 호출하기만 하면 됩니다. 그러나, 함수를 과도하게 사용하면 코드가 지나치게 복잡해질 수 있으므로, 적절한 수준에서 함수를 사..
-
[파이썬] 전역변수, 지역변수와 global 키워드 - 장단점코딩/Python 2023. 4. 12. 14:31
파이썬은 변수형을 미리 지정하지 않아도 변수값을 입력하는 순간 변수형을 스스로 지정한다. 전역변수는 def로 지정된 구역 바깥에서 정의된 변수이거나, global 키워드로 지정된 변수다. 전역변수를 함수에서 사용하려면 아래의 예를 참고하면 된다. 전역변수를 수정하려고 할 경우에는 함수에게 인수로 전달하고, return으로 반환해야 한다. # 예제 1 a=1 # 전역변수 지정 def ax(a): # 전역변수를 받는다 print(a) # 전역변수 출력 a=2 # 지역변수 지정 return a # 지역변수 반환 a=ax(a) # 지역변수를 전역변수로 전달 print(a) # 전역변수 출력 전역변수를 수정하지 않고 사용만 할 경우는 함수의 인수로 전달받을 필요가 없다. 아래 코드는 잘 작동한다. # 예제 2 b..
-
[네이버주식] dataframe merge 오류코딩/Python 2023. 4. 11. 11:32
네이버주식에서 업종별 시세 자료를 모으던 중, 계속되는 에러가 있었다.종목이 몇개 되지 않거나, 시장이 끝난 시간에는 오류가 없다가 장중에는 수시로 dataframe merge 작업 중 에러가 생겼다. 업종별 시세 페이지에는 많은 항목들이 있어 한번에 데이터를 확보할 수 없어 webbrowser로 항목을 최대 6개까지 선택해서 dataframe을 만들고, 다시 6개의 항목으로 업데이트 후 새로 dataframe을 만들어 기존 dataframe과 합쳐 데이터를 만드는데, 이 dataframe에는 '종목명, 현재가, 전일비, 등락률' 네 개의 항목이 항상 기본적으로 포함되므로 'keyset'이라는 변수를 만들어 이 세트를 기준으로 병합을 했다. 그런데, 장 중에는 이 키셋값이 항상 변하므로 일정한 기준이 될..
-
[VBA/Array] Not Not Array 로 배열원소 확인하기코딩/vba 2023. 4. 1. 14:43
배열 확인: 배열의 존재와 원소의 존재 배열의 존재 확인 배열이 존재하는 지는 IsArray()로 확인할 수 있다. VBA의 IsArray() 함수는 인자로 전달된 변수가 배열인지 여부를 판별하는 함수이다. 인자가 배열이면 True를 반환하고, 배열이 아니면 False를 반환한다. 예를 들어, 다음과 같이 IsArray() 함수를 사용하여 변수가 배열인지 여부를 판별할 수 있다. Sub sample_IsArray() Dim arr() As Variant Dim sng As Single Debug.Print IsArray(arr) ' True 출력. Debug.Print IsArray(sng) ' False 출력. End Sub 위 코드에서는 arr 변수가 배열이므로 IsArray(arr)이 True가 되..
-
[VBA] 영역을 csv로 저장하기코딩/vba 2023. 3. 31. 14:58
영역을 CSV로 저장하기 방법 1 영역을 복사 새로운 워크북 열기(workbooks.open(파일이름)) 영역 붙여넣기 새로 저장(csv) 위 절차로 하니 ',' 없이 저장되어 열 구분이 안됐다. 다시 수정하여, 방법 2 영역 복사 새로운 워크북 열기(workbooks.open(파일이름)) 영역 선택(복사 영역과 같은 크기) 영역 붙여넣기 새로 저장(csv) 아예 저장이 되지 않는다. csv 파일에 아무것도 없다. 디버그 모드로 하나씩 검증을 해봐도 4까지는 정상적으로 붙여넣는게 보인다. 하지만 열어보면 아무것도 없다. 귀신이 장난을 쳤나, 아니면 맥이라서 맥이는건가? 방법 3 영역 복사 새로운 워크북 추가(workbooks.add) 영역 붙여넣기 새로 저장(csv) 방법 3이 제대로 작동된다. 결론은 ..