목록을 작성하지 않으므로 목록 이해가되지 않습니다.
import collections
import itertools
result = collections.Counter(itertools.chain.from_iterable(inputDict.values()))
그러나, 각 노드에 노드 링크 얼마나 많은 계산 것으로 보인다 수행하려는 작업은 쉽게 각 노드는
inputDict
의 값을 표시하는 횟수를 계산하는
collections.Counter
를 사용하여 수행 할 수 있습니다
itertools.chain
은 inputDict.values()
이고 문자열은 노드의 모든 목록을 하나의 큰 반복자로 묶습니다. (또는 그것들은 노드들의 집합입니다.) 말하기 어렵습니다. collections.Counter
은 각 요소를 몇 번이나 셉니다. 결과는 collections.Counter
인스턴스이며 대부분 dict처럼 작동합니다. 이 몇 가지 차이점하지만, 그래서 정확히 dict
유형의 결과를 필요로하는 경우, 당신은에 dict
를 호출 할 수 Counter
하지 카운터에있는 항목 0의 수를 반환
result = dict(result)
하는 것으로하지만, dict
하지 않습니다. dict
을 호출하면 inputDict.values()
에 나타나지 않은 노드에 0을 입력해야 할 수 있습니다.
Counter
및 chain
의 사용은 그래서 여기에 당신이 라이브러리 코드를 가져 오지 않고 그를 써서 방법, 여기에 무슨 일이 일어나고 있는지의 일부를 숨길 수 있습니다 :
result = {}
# Initialize counts to 0, to make sure nodes that don't appear in the values have the
# right count and to make sure we don't need to check `if node in result` later.
for node in inputDict:
result[node] = 0
# Go through and count node occurrences.
for adjacent_nodes in inputDict.values():
for node in adjacent_nodes:
result[node] += 1
하는 쉬운 방법이 없습니다를 이것을 collections.Counter
이 존재하는 이유 중 하나 인 알고리즘 적 복잡성 희생없이 이해하기 시작하십시오.
코드 자체가 작동하지 않는다고해서 코드를 업데이트 할 수 있습니까? –
_list 이해 _? 목록이 아닌 사전을 작성 중입니다. –
코드의 어떤 부분이 작동하지 않습니까? –