본문 바로가기

1.344

Python "RuntimeError: dictionary changed size during iteration" 오류를 피하는 방법은 무엇인가요?, How can I avoid "RuntimeError: dictionary changed size during iteration" error? 질문 어떤 리스트의 사전이 있다고 가정해봅시다: d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]} 이제 값이 빈 리스트인 키-값 쌍을 제거하고 싶습니다. 다음 코드를 시도해봤습니다: for i in d: if not d[i]: d.pop(i) 하지만 이렇게 하면 오류가 발생합니다: RuntimeError: dictionary changed size during iteration 사전을 반복하는 동안에는 항목을 추가하거나 제거할 수 없다는 것을 이해합니다. 이 문제를 해결하기 위해 이 제한을 어떻게 우회할 수 있을까요? 이로 인해 문제가 발생할 수 있고 그 이유에 대한 인용은 Modifying a Python dict while iterating over it에서 확인할 수 .. 2023. 10. 24.
C#의 null-coalescing 연산자에 대응하는 Python이 있나요?, Is there a Python equivalent of the C# null-coalescing operator? 질문 C#에서는 null 병합 연산자 (??로 작성됨)가 있어서 할당 중 쉬운(짧은) null 확인이 가능합니다: string s = null; var other = s ?? "some default value"; 파이썬에는 이와 동등한 것이 있나요? 다음과 같이 할 수 있다는 것은 알고 있습니다: s = None other = s if s else "some default value" 하지만 더 짧은 방법이 있을까요 (s를 반복하지 않아도 되는 방법)? 답변 other = s 또는 "일부 기본 값" 좋아, or 연산자가 어떻게 작동하는지 명확히 해야합니다. 이는 부울 연산자이므로 부울 컨텍스트에서 작동합니다. 값이 부울이 아닌 경우, 연산자의 목적을 위해 부울로 변환됩니다. or 연산자는 True 또는.. 2023. 10. 24.
Python 파이썬의 람다에서 "if"를 실행하는 방법이 있을까요? [중복], Is there a way to perform "if" in python's lambda? [duplicate] 질문 파이썬 2.6에서는 다음을 수행하려고 합니다: f = lambda x: if x==2 print x else raise Exception() f(2) # "2"를 출력해야 함 f(3) # 예외를 발생시켜야 함 이것은 분명히 문법이 아닙니다. lambda에서 if를 수행할 수 있는지 여부와 가능하다면 어떻게 수행하는지 알 수 있을까요? 답변 원하는 구문은 다음과 같습니다: lambda x: True if x % 2 == 0 else False 하지만 람다에서는 print나 raise를 사용할 수 없습니다. 2023. 10. 24.
Python Django에서 GROUP BY를 사용하여 쿼리하는 방법은 무엇인가요?, How to query as GROUP BY in Django? 질문 나는 모델을 쿼리합니다: Members.objects.all() 그리고 다음과 같이 반환됩니다: Eric, Salesman, X-Shop Freddie, Manager, X2-Shop Teddy, Salesman, X2-Shop Sean, Manager, X2-Shop 내가 원하는 것은 데이터베이스로 group_by 쿼리를 실행하는 최상의 Django 방법을 알고 싶습니다: Members.objects.all().group_by('designation') 물론 작동하지 않습니다. django/db/models/query.py에서 어떤 트릭을 사용할 수 있다는 것은 알고 있지만, 패치 없이 어떻게 할 수 있는지 궁금합니다. 답변 만약 집계를 하려면 ORM의 집계 기능을 사용할 수 있습니다: from .. 2023. 10. 18.