튜플이다 OrderedDict에서 키 수를 가져옵니다 :키가 나는 이와 같은 사전을했습니다
my_dict=collections.OrderedDict([((123, 1), 'qwe'), ((232, 1), 'asd'), ((234, 2), 'zxc'), ((6745, 2), 'aaa'), ((456, 3), 'bbb')])
튜플의 조합은 항상 고유 나는 삽입의 순서를 유지하고자하는, 따라서 OrderedDict. 나는 딕트 (Dict)의 ~ 10K 개 항목을 잘 처리했다. 어떻게 튜플의 두 번째 요소의 수를 제공하는 카운터를 효율적으로 유지 관리 할 수 있습니까? 기본적으로 키에 항목을 추가/삭제할 때마다 카운트를 알 필요가 있습니다. 지금은 my_dict
을 통해 반복하고 카운터 을 매번하지만 매우 비싸 것으로 보입니다. 위의 예에서
1:2 # As in 1 occurs 2 times
2:2
3:1
을 지금 나는 다음을 수행하십시오
from collections import OrderedDict, Counter
my_dict = OrderedDict()
my_dict[(123,1)] = 'qwe'
my_dict[(232,1)] = 'asd'
my_dict[(234,2)] = 'zxc'
my_dict[(6745,2)] = 'aaa'
my_dict[(456,3)] = 'bbb'
cnt = []
for item in my_dict.keys():
cnt.append(item[1])
print Counter(cnt)
나는 이것이 가장 좋은 방법이지만이 있는지 확실하지 않습니다 =
연산자와 pop
함수를 재정의하는 방법으로, 작업을 할 때마다 계수를 더하거나 뺍니다.
'인스턴스를 기본 속성으로 사용합니다. –
첫 번째 줄은 아무 효과가 없습니다. 'my_dict'는 두 번째 줄의 일반적인'dict'에 할당됩니다. – jfs
@ J.F.Sebastian 당신 말이 맞아요. 나는 생각하지 않았다. 나의 예를 수정했다. –