본문 바로가기

전체 글980

Python 만약 파이썬 객체가 "subscriptable"인지 아닌지를 의미하는 것은 무엇인가요?, What does it mean if a Python object is "subscriptable" or not? 질문 어떤 유형의 객체가 "subscriptable" 도메인에 속합니까? 답변 이것은 객체가 __getitem__() 메소드를 구현한다는 것을 의미합니다. 다른 말로하면, 이는 다른 객체를 포함하는 "컨테이너"인 객체를 설명합니다. 이에는 문자열, 리스트, 튜플 및 사전이 포함됩니다. 2023. 9. 11.
Python 리스트에 대한 짧은 포함 함수가 있나요?, Is there a short contains function for lists? 질문 주어진 목록 xs와 값 item이 있을 때, xs가 item을 포함하는지 (즉, xs의 요소 중 어떤 것이 item과 같은지) 어떻게 확인할 수 있을까요? xs.contains(item)과 같은 것이 있을까요? 성능에 대한 고려 사항은 목록에서 값이 존재하는지 확인하는 가장 빠른 방법을 참조하세요. 답변 사용: if my_item in some_list: ... 또한, 역 연산: if my_item not in some_list: ... 리스트, 튜플, 세트 및 사전 (키 확인)에 대해 잘 작동합니다. 참고: 이는 리스트와 튜플에서는 O(n) 작업이지만 세트와 사전에서는 O(1) 작업입니다. 2023. 9. 11.
Python 파이썬에서 상대적인 임포트를 어떻게 할 수 있을까요?, How can I do relative imports in Python? 질문 이 디렉토리 구조를 상상해보세요: app/ __init__.py sub1/ __init__.py mod1.py sub2/ __init__.py mod2.py 저는 mod1을 코딩하고 있으며, mod2에서 무언가를 가져와야 합니다. 어떻게 해야 할까요? from ..sub2 import mod2를 시도해봤지만, "Attempted relative import in non-package"라는 오류가 발생합니다. 인터넷에서 검색해봤지만, "sys.path 조작" 트릭만을 찾을 수 있었습니다. 깔끔한 방법은 없을까요? 지금은 모든 __init__.py가 비어있습니다. 저는 이렇게 하려고 하는데, sub2에는 sub 패키지(sub1, subX 등) 간에 공유되는 클래스들이 포함되어 있습니다. 원하는 동작은 .. 2023. 9. 11.
Python 딕셔너리에서 값 목록을 어떻게 얻을 수 있을까요?, How can I get list of values from dict? 질문 파이썬에서 딕셔너리의 값 목록을 어떻게 얻을 수 있을까요? 자바에서는 Map의 값들을 List로 가져오는 것이 list = map.values();와 같이 간단합니다. 파이썬에서도 딕셔너리의 값 목록을 얻는 것이 비슷하게 간단한 방법이 있는지 궁금합니다. 답변 dict.values는 사전의 값들의 뷰(view)를 반환하므로, list로 감싸야 합니다: list(d.values()) 2023. 9. 11.
Python 파이썬에서 어떻게 배열을 선언하나요?, How do I declare an array in Python? 질문 어떻게 Python에서 배열을 선언하나요? 답변 variable = [] 지금 variable은 빈 리스트를 참조합니다*. 물론 이것은 할당이며, 선언이 아닙니다. Python은 동적으로 타입이 지정되기 때문에 "이 변수는 리스트 이외의 다른 것을 참조하지 않아야 한다"는 방법이 없습니다. *기본 내장 Python 타입은 리스트라고 불리며, 배열이 아닙니다. 이는 임의의 길이로 정렬된 컨테이너로, 서로 다른 유형의 객체들을 포함할 수 있습니다 (유형은 중요하지 않으며 자유롭게 혼합될 수 있음). 이는 C의 array 타입과 더 가까운 유형을 제공하는 array 모듈과 혼동해서는 안 됩니다; 여기서는 내용물이 동일한 유형으로 구성되어야 하지만 길이는 여전히 동적입니다. 2023. 9. 11.
Python 파이썬에서의 문자열 비교: is vs. == [중복], String comparison in Python: is vs. == [duplicate] 질문 나는 작성하고 있던 Python 스크립트가 이상하게 작동하는 것을 알았고, 무한 루프로 추적했습니다. 루프 조건은 while line is not ''였습니다. 디버거에서 실행하다보니 line이 실제로는 ''였습니다. is not '' 대신에 !=''로 변경하니 정상적으로 작동했습니다. 또한, int나 Boolean 값을 비교할 때에도 기본적으로 '=='을 사용하는 것이 일반적으로 더 좋다고 생각되나요? 나는 항상 'is'를 사용하는 것이 더 미적으로도 만족스럽고 파이썬스럽다고 생각했는데 (그래서 이 함정에 빠져들게 되었습니다...), 아마도 동일한 id를 가진 두 개체를 찾고 싶을 때만 사용하도록 의도된 것인지 궁금합니다. 답변 모든 내장 Python 객체 (예: 문자열, 리스트, 사전, 함수 등.. 2023. 9. 11.
Python def main()을 왜 사용해야 하나요? [중복됨], Why use def main()? [duplicate] 질문 나는 일부 코드 샘플과 자습서를 보았는데 def main(): # 내 코드 여기에 if __name__ == "__main__": main() 하지만 왜 그럴까요? 파일의 맨 위에서 함수를 정의하고 그 아래에 코드를 작성하는 것이 아닌가요? 예를 들어 def my_function() # 내 코드 여기에 def my_function_two() # 내 코드 여기에 # 일부 코드 # 함수 호출 # 출력(무언가) 나는 그냥 main에 어떤 요점이 있는지 궁금합니다. 답변 메인 센티널이 없으면, 스크립트가 모듈로 가져와져도 코드가 실행됩니다. 2023. 9. 11.
Python 파이썬 함수의 소스 코드를 어떻게 얻을 수 있을까요?, How can I get the source code of a Python function? 질문 아래와 같이 정의된 Python 함수가 있다고 가정합니다: def foo(arg1,arg2): #인자들을 이용하여 작업 수행 a = arg1 + arg2 return a foo.func_name을 사용하여 함수의 이름을 가져올 수 있습니다. 위에서 입력한 대로 함수의 소스 코드를 프로그래밍적으로 어떻게 가져올 수 있을까요? 답변 만약 함수가 파일 시스템에서 사용 가능한 소스 파일에서 가져온 것이라면, inspect.getsource(foo)가 도움이 될 수 있습니다: 만약 foo가 다음과 같이 정의되어 있다면: def foo(arg1,arg2): #args와 무언가를 수행 a = arg1 + arg2 return a 그러면: import inspect lines = inspect.getsource(.. 2023. 9. 11.