Create a gist now

Instantly share code, notes, and snippets.

@jdp / forked from isa/gist:2571012
Last active Feb 9, 2016

What would you like to do?
Convert in less than 30 lines
Question: Convert following into the latter data structure in less than 30 lines:
A, B, C
A, C, E
E, F, D
D, A, J
E, D, J
A, B, 1 (frequency)
A, C, 2
A, D, 1
A, E, 1
A, J, 1
B, C, 1
C, E, 1
D, E, 2
D, F, 1
D, J, 2
E, F, 1
E, J, 1
from collections import Counter
from itertools import chain, combinations
lines = [['A', 'B', 'C'], ['A', 'C', 'E'], ['E', 'F', 'D'], ['D', 'A', 'J'], ['E', 'D', 'J']]
freqs = Counter(tuple(sorted(t)) for t in chain.from_iterable(combinations(l, 2) for l in lines))
result = [(k1, k2, f) for (k1, k2), f in sorted(freqs.items())]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment