본문 바로가기

Iteration9

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.
Python 파이썬 판다스: 특정 값과 일치하는 열의 행 인덱스 가져오기, Python Pandas: Get index of rows where column matches certain value 질문 주어진 DataFrame에 "BoolCol"이라는 열이 있는 경우, "BoolCol" 값이 True인 DataFrame의 인덱스를 찾고 싶습니다. 현재는 작동하는 반복적인 방법을 사용하고 있습니다: for i in range(100,3000): if df.iloc[i]['BoolCol']== True: print i,df.iloc[i]['BoolCol'] 하지만 이는 올바른 판다스 방법이 아닙니다. 조사를 한 후, 현재 이 코드를 사용하고 있습니다: df[df['BoolCol'] == True].index.tolist() 이 코드는 인덱스의 리스트를 제공하지만, 확인해 보면 일치하지 않습니다: df.iloc[i]['BoolCol'] 결과는 실제로 False입니다!! 이를 올바르게 수행하는 판다스 방.. 2023. 10. 11.
Python 파이썬에서 날짜 범위를 반복하는 것, Iterating through a range of dates in Python 질문 다음과 같은 코드가 있습니다. 그러나 어떻게 더 좋게 할 수 있을까요? 현재는 중첩된 루프보다는 더 좋다고 생각하지만, 생성기가 목록 표현식에 포함되면 Perl-one-linerish해집니다. day_count = (end_date - start_date).days + 1 for single_date in [d for d in (start_date + timedelta(n) for n in range(day_count)) if d 2023. 10. 9.
Python 변수 변수를 어떻게 생성하나요?, How do I create variable variables? 질문 나는 일부 다른 언어들이 "변수 변수 이름"이라는 개념을 지원한다는 것을 알고 있습니다. 즉, 문자열의 내용을 변수 이름의 일부로 사용할 수 있다는 것입니다. 일반적으로 이러한 아이디어는 좋지 않다고 들었지만, 나는 이것이 내 Python 코드에서 일부 문제를 해결할 수 있을 것 같습니다. Python에서 이와 같은 것을 할 수 있을까요? 무엇이 잘못될 수 있을까요? 기존의 변수를 이름으로 찾으려고 하는 경우에는 이름으로 변수를 선택하는 방법을 참조하십시오. 그러나 먼저 이 질문의 조언을 따라 해당 필요성을 피할 수 있는지 고려하십시오. 답변 이를 수행하기 위해 dictionaries를 사용할 수 있습니다. Dictionaries는 키와 값의 저장소입니다. >>> dct = {'x': 1, 'y':.. 2023. 10. 7.