Python
-
Python의 collections 모듈에 있는 Counter 클래스에 대해 알아보겠습니다.Counter는 데이터의 빈도를 계산하는 데 특화된 도구로, 코드를 간결하게 만들고 성능을 향상시키는 데 큰 도움이 됩니다.Counter 소개Counter는 해시 가능한 객체를 세는 데 사용되는 딕셔너리의 하위 클래스입니다. 요소가 딕셔너리 키로 저장되고, 그 개수가 딕셔너리 값으로 저장됩니다.기본 사용법from collections import Counter# 리스트에서 요소 개수 세기fruits = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple']fruit_counter = Counter(fruits)print(fruit_counter) # Counter(..
Python Collections의 Counter: 데이터 빈도 계산의 강력한 도구Python의 collections 모듈에 있는 Counter 클래스에 대해 알아보겠습니다.Counter는 데이터의 빈도를 계산하는 데 특화된 도구로, 코드를 간결하게 만들고 성능을 향상시키는 데 큰 도움이 됩니다.Counter 소개Counter는 해시 가능한 객체를 세는 데 사용되는 딕셔너리의 하위 클래스입니다. 요소가 딕셔너리 키로 저장되고, 그 개수가 딕셔너리 값으로 저장됩니다.기본 사용법from collections import Counter# 리스트에서 요소 개수 세기fruits = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple']fruit_counter = Counter(fruits)print(fruit_counter) # Counter(..
2024.08.29 -
파이썬에서 리스트를 다룰 때 흔히 마주치는 문제 중 하나는 리스트를 순회하면서 동시에 요소를 제거하는 상황입니다. 이런 작업이 예상치 못한 결과를 낳는 경우가 많은데, 오늘은 이 문제와 그 해결 방법을 알아보겠습니다.문제가 있는 코드다음 코드를 봐주세요:def remove_max_values(values): if not values: return max_val = max(values) for i, v in enumerate(values): if v == max_val: values.pop(i) result.append(v) return result# 테스트values = [5, 5, 4, 3, 5, 2]result = []print..
파이썬 리스트 순회 중 요소 제거(반복문 도중에 멈춤): 함정과 해결책파이썬에서 리스트를 다룰 때 흔히 마주치는 문제 중 하나는 리스트를 순회하면서 동시에 요소를 제거하는 상황입니다. 이런 작업이 예상치 못한 결과를 낳는 경우가 많은데, 오늘은 이 문제와 그 해결 방법을 알아보겠습니다.문제가 있는 코드다음 코드를 봐주세요:def remove_max_values(values): if not values: return max_val = max(values) for i, v in enumerate(values): if v == max_val: values.pop(i) result.append(v) return result# 테스트values = [5, 5, 4, 3, 5, 2]result = []print..
2024.08.21 -
Python 유효성 검사하고 dictionary 특정 키값 업데이트하기. Clean하게. 유효성 검사 안하면 아래처럼 에러가 생깁니다.bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string 우선 키값을 update하려면 아래처럼 유효성을 검사하고 새로운 value를 넣으면 됩니다. if aiPicPrompt: aiPicPrompt["_id"] = str(aiPicPrompt.get("_id")) 하지만 위의코드도 작동하지만 한줄로 줄이고, 더 멋지게 작성할 수 있습니다.aiPicPrompt and aiPicPrompt.update(_id=str(ai..
Python 유효성 검사하고 dictionary 특정 키값 업데이트하기[As Clean](bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string)Python 유효성 검사하고 dictionary 특정 키값 업데이트하기. Clean하게. 유효성 검사 안하면 아래처럼 에러가 생깁니다.bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string 우선 키값을 update하려면 아래처럼 유효성을 검사하고 새로운 value를 넣으면 됩니다. if aiPicPrompt: aiPicPrompt["_id"] = str(aiPicPrompt.get("_id")) 하지만 위의코드도 작동하지만 한줄로 줄이고, 더 멋지게 작성할 수 있습니다.aiPicPrompt and aiPicPrompt.update(_id=str(ai..
2024.08.16 -
Python의 비동기 프로그래밍을 활용하여 데이터베이스 쿼리를 어떻게 효율적으로 최적화할 수 있는지 알아보겠습니다.특히 asyncio.gather()를 사용한 멋진 코드 한 줄로 어떻게 성능을 크게 향상시킬 수 있는지 살펴보죠.문제 상황여러분이 아래와 같은 코드로 여러 개의 데이터베이스 쿼리를 순차적으로 실행하고 있다고 가정해봅시다:hashTags = []for val in hashBroker: hashtag = await findOne(dbName, table, {"_id": ObjectId(val.get('hashtagID'))}) hashTags.append(hashtag)이 코드는 작동하지만, 각 쿼리를 하나씩 순차적으로 처리하기 때문에 hashBroker의 크기가 크다면 상당한 시간이..
비동기 프로그래밍의 마법: asyncio.gather()로 데이터베이스 쿼리 최적화하기Python의 비동기 프로그래밍을 활용하여 데이터베이스 쿼리를 어떻게 효율적으로 최적화할 수 있는지 알아보겠습니다.특히 asyncio.gather()를 사용한 멋진 코드 한 줄로 어떻게 성능을 크게 향상시킬 수 있는지 살펴보죠.문제 상황여러분이 아래와 같은 코드로 여러 개의 데이터베이스 쿼리를 순차적으로 실행하고 있다고 가정해봅시다:hashTags = []for val in hashBroker: hashtag = await findOne(dbName, table, {"_id": ObjectId(val.get('hashtagID'))}) hashTags.append(hashtag)이 코드는 작동하지만, 각 쿼리를 하나씩 순차적으로 처리하기 때문에 hashBroker의 크기가 크다면 상당한 시간이..
2024.08.13 -
Error! Cannot read input picture file 'img.HEIC' HEIC 파일은 High Efficiency Image Coding(HEIC) 포맷으로, 주로 iOS 기기에서 사용되는 이미지 파일 형식입니다. 주로 HEIC 포맷은 이미지 파일을 고효율로 압축하면서도 품질을 유지하는 데 사용됩니다.이 오류 메시지는 지정한 경로에 있는 HEIC 파일을 읽거나 처리할 수 없음을 나타냅니다. 이 문제를 해결하기 위해 다음과 같은 방법을 시도해볼 수 있습니다. 1. HEIC 파일을 PNG 또는 JPG로 변환HEIC 파일을 보다 널리 사용되는 PNG 또는 JPG 형식으로 변환하면 오류를 피할 수 있습니다. Python에서는 PIL(Pillow) 라이브러리와 함께 pyheif 라이브러리를 사용..
파이썬에서 HEIC 이미지 저장하기 (Error! Cannot read input picture file 'img.HEIC')Error! Cannot read input picture file 'img.HEIC' HEIC 파일은 High Efficiency Image Coding(HEIC) 포맷으로, 주로 iOS 기기에서 사용되는 이미지 파일 형식입니다. 주로 HEIC 포맷은 이미지 파일을 고효율로 압축하면서도 품질을 유지하는 데 사용됩니다.이 오류 메시지는 지정한 경로에 있는 HEIC 파일을 읽거나 처리할 수 없음을 나타냅니다. 이 문제를 해결하기 위해 다음과 같은 방법을 시도해볼 수 있습니다. 1. HEIC 파일을 PNG 또는 JPG로 변환HEIC 파일을 보다 널리 사용되는 PNG 또는 JPG 형식으로 변환하면 오류를 피할 수 있습니다. Python에서는 PIL(Pillow) 라이브러리와 함께 pyheif 라이브러리를 사용..
2024.08.11 -
PyChecker로 Python 코드 품질 향상하기Python 개발자들에게 매우 유용한 도구인 PyChecker에 대해 알아보려고 합니다. 코드 품질을 높이고 잠재적인 버그를 미리 잡아내는 데 큰 도움이 되는 이 도구, 함께 살펴볼까요?PyChecker란?PyChecker는 Python 코드의 정적 분석 도구입니다. 코드를 실행하지 않고도 소스 코드를 분석하여 잠재적인 오류, 버그, 스타일 문제 등을 찾아냅니다. 이는 개발 과정에서 시간을 절약하고 코드의 안정성을 높이는 데 큰 도움이 됩니다.설치 방법PyChecker는 pip를 통해 쉽게 설치할 수 있습니다:pip install pychecker기본 사용법PyChecker의 기본 사용법은 매우 간단합니다. 명령줄에서 다음과 같이 사용하면 됩니다:pych..
[Python 버그 분석] 버그 찾기, 정적 분석을 위한 PyCheckerPyChecker로 Python 코드 품질 향상하기Python 개발자들에게 매우 유용한 도구인 PyChecker에 대해 알아보려고 합니다. 코드 품질을 높이고 잠재적인 버그를 미리 잡아내는 데 큰 도움이 되는 이 도구, 함께 살펴볼까요?PyChecker란?PyChecker는 Python 코드의 정적 분석 도구입니다. 코드를 실행하지 않고도 소스 코드를 분석하여 잠재적인 오류, 버그, 스타일 문제 등을 찾아냅니다. 이는 개발 과정에서 시간을 절약하고 코드의 안정성을 높이는 데 큰 도움이 됩니다.설치 방법PyChecker는 pip를 통해 쉽게 설치할 수 있습니다:pip install pychecker기본 사용법PyChecker의 기본 사용법은 매우 간단합니다. 명령줄에서 다음과 같이 사용하면 됩니다:pych..
2024.08.11 -
pyodbc 설치도중 pip._vendor.packaging.version.InvalidVersion: Invalid version: '4.0.0-unsupported' 와 같은 에러가 발생 했습니다. 설치할때 사용한 명령어pip install pyodbc 우선 다시 지워 줍니다.pip uninstall pyodbc pip upgrade 해줍니다.pip install --upgrade pip 특정 버전의 pyodbc 설치, 최신 버전 대신 특정 버전의 pyodbc를 설치해보세요.pip install pyodbc==4.0.39 이제 정상적으로 설치됩니다.
pip._vendor.packaging.version.InvalidVersion: Invalid version: '4.0.0-unsupported'pyodbc 설치도중 pip._vendor.packaging.version.InvalidVersion: Invalid version: '4.0.0-unsupported' 와 같은 에러가 발생 했습니다. 설치할때 사용한 명령어pip install pyodbc 우선 다시 지워 줍니다.pip uninstall pyodbc pip upgrade 해줍니다.pip install --upgrade pip 특정 버전의 pyodbc 설치, 최신 버전 대신 특정 버전의 pyodbc를 설치해보세요.pip install pyodbc==4.0.39 이제 정상적으로 설치됩니다.
2024.08.07 -
파이썬에서 딕셔너리를 다루는 더 나은 방법에 대해 이야기해보려고 합니다. 1) dict(key=value) 사용하기우리가 흔히 알고 있는 딕셔너리 생성 방법은 중괄호 {}를 사용하는 것입니다. 하지만 dict(key=value)로 생성하는 방법은 더 깔끔하고 직관적입니다. # 일반적으로 dictionary를 생성할때d = {'apple':4,'orange':5,'pear':6,'pineapple':7}# 더 나은 방법으로 똑같이 dictionary를 생성하는법d = dict(apple=4, orange=5, pear=6, pineapple=7) dict(key=value) 장점:{}를 사용할 때, 문자열 키에 따옴표를 입력할 필요가 없습니다.예를 들어, 'apple', 'orange' 등과 같이 말이죠..
Python 딕셔너리에 대해서 알면 좋은 8가지 (FOR CLEAN CODE)파이썬에서 딕셔너리를 다루는 더 나은 방법에 대해 이야기해보려고 합니다. 1) dict(key=value) 사용하기우리가 흔히 알고 있는 딕셔너리 생성 방법은 중괄호 {}를 사용하는 것입니다. 하지만 dict(key=value)로 생성하는 방법은 더 깔끔하고 직관적입니다. # 일반적으로 dictionary를 생성할때d = {'apple':4,'orange':5,'pear':6,'pineapple':7}# 더 나은 방법으로 똑같이 dictionary를 생성하는법d = dict(apple=4, orange=5, pear=6, pineapple=7) dict(key=value) 장점:{}를 사용할 때, 문자열 키에 따옴표를 입력할 필요가 없습니다.예를 들어, 'apple', 'orange' 등과 같이 말이죠..
2024.08.06