Входное гнездо представляет собой список строк кортежей и мне нужен подсчетпамяти сохранение альтернативы по противодействию кортежей ключей расщепления
- сколько раз встречается каждая строка кортежа
- сколько раз один элемент из строки кортежа происходит
- сколько раз другого элемента строки кортежа происходит
в настоящее время я делаю это так:
>>> from collections import Counter
>>> data = [('foo','bar'), ('foo', 'bar'), ('foo', 'doo'), ('joo', 'doo'), ('koo', 'lar')]
>>> datacount = Counter(data)
>>> datacount
Counter({('foo', 'bar'): 2, ('joo', 'doo'): 1, ('koo', 'lar'): 1, ('foo', 'doo'): 1})
>>> x, y = zip(*datacount.keys())
>>> x
('joo', 'foo', 'koo', 'foo')
>>> y
('doo', 'bar', 'lar', 'doo')
>>> xcount = Counter(x)
>>> ycount = Counter(y)
>>> xcount
Counter({'foo': 2, 'koo': 1, 'joo': 1})
>>> ycount
Counter({'doo': 2, 'bar': 1, 'lar': 1})
Но я понимаю, что это занимает три отдельных счетчика. Есть ли альтернатива получению подсчетов и другой структуры данных, которые я могу легко получить в счетах?
Что неэффективно об этом? – yurib