에 dicts의 목록을 추가 내가 거기에 두 가지의 사전가장 빠른 방법으로 키가 많다는 함께 파이썬
a = {'x': 1.0, 'y': 0.5, 'z': 0.25 }
b = {'w': 0.5, 'x': 0.2 }
의 무리를 말하지만, 문제는 인해 임의 양에 관한됩니다.
각 키의 평균값을 찾는 가장 빠른 방법은 무엇입니까? dicts는 매우 희소하기 때문에 많은 dicts에 많은 키가 존재하지 않는 경우가 많이있을 것입니다.
내가 찾고있는 결과는 모든 키와 각각에 대한 평균값을 가진 새 사전입니다. 값은 항상 부동입니다, 나는 ctypes에 담글 수있어서 기쁩니다. 내가 가지고있는 접근 방식은 내가 원했던 것보다 느리다. 왜냐하면 아마도 나의 경우 defaultdicts를 사용하고 있는데, 이는 그들이 실제로 존재하지 않더라도 실제로 값을 초기화한다는 것을 의미하기 때문이다. 이것이 저속의 원인이라면 나는 리팩토링하는 것을 기쁘게 생각합니다. 나는 명백한 것을 놓치지 않고 있는지 확인하고 싶습니다.
편집 : 나는 값이 0.0로 작동한다없는 경우 나, 결과가 있어야한다 무엇에 오해의 소지가되었다고 생각하기 때문에 위의 예에 대한 결과는 다음과 같습니다
{'w':0.25,'x':0.6,'y':0.25,'z':0.125}
그래서를 division은 총 고유 키 수입니다.
내가 궁금해하는 주요한 점은 한 문장으로 전체 문장을 길이로 나눌 수있는 방법이나 한 걸음 더하기를하는 것입니다. 기본적으로 매우 빠른 벡터 추가 및 나누기. 난 numpy 배열을 간단히 살펴 봤지만 그들은 dicts에 적용하지 않는 것 같아요. 그리고 목록에 딕테이션을 변환한다면 (희박한 값을 0으로 명시함으로써) 희소성 속성을 제거해야 할 것입니다.
지금까지 답변 해 주신 분께 감사 드리며 어떤 접근 방식이 나에게 가장 좋은 성과를 거두고 있는지 조사하고 있습니다. –