Skip to content

Instantly share code, notes, and snippets.

@monzee
Forked from isa/gist:2571012
Created May 1, 2012 23:11
Show Gist options
  • Save monzee/2572256 to your computer and use it in GitHub Desktop.
Save monzee/2572256 to your computer and use it in GitHub Desktop.
Convert in less than 30 lines
from __future__ import print_function
from itertools import chain, combinations
data = [
['A', 'B', 'C'],
['A', 'C', 'E'],
['E', 'F', 'D'],
['D', 'A', 'J'],
['E', 'D', 'J'],
]
pairs = map(sorted, chain(*[combinations(row, 2) for row in data]))
pairfreq = sorted(set(tuple(pair) + (pairs.count(pair),) for pair in pairs))
map(print, pairfreq)
"""
Question: Convert following into the latter data structure in less than 30 lines:
List:
A, B, C
A, C, E
E, F, D
D, A, J
E, D, J
List
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
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment