Я работаю над python картой / уменьшением в нескольких частях.
Моя первая карта печатается на стандартном экране, так что первое уменьшение может его забрать.
Результат карта выглядит следующим образом:
frozenset([4]) 14
Редакция показывает frozenset([4])
в качестве ключа и 14
в качестве значения.
Как извлечь только [4] от ключа, чтобы перейти к выводу приведения? Карта выглядит так:
import sys
data = sys.stdin.read()
dataset = []
for line in data.splitlines():
dataset.append(map(int, line.strip().split(" ")))
c1 = []
for transaction in dataset:
for item in transaction:
if not [item] in c1:
c1.append([item])
candidates = map(frozenset, c1)
sscnt = {}
for tid in dataset:
for can in candidates:
if can.issubset(tid):
sscnt.setdefault(can, 0)
sscnt[can] += 1
for key,val in sscnt.items():
print key, val
Редакция выглядит так:
import sys
min_support = 12
sscnt = {}
for input_line in sys.stdin:
input_line = input_line.strip()
key, value = input_line.split(" ")
key = int(key)
sscnt[key] = int(value)
retlist = []
for key in sscnt:
support = sscnt[key]
if value >= min_support:
retlist.insert(0, key)
print retlist
Результат редукции выглядит следующим образом:
['frozenset([1])', 'frozenset([4])', 'frozenset([2])']
Вход данные выглядят так:
1 2 3 5 8
2 3 4 7
1 2 4 5 7
1 2 4 6 7
1 2 3 4 5
1 2 4 5 6
1 2 4 6 9
1 2 4 8
3 5 6 8
1 2 4 7
1 2 4 5
1 2 4 9
3 5 6 9
1 2 4 7
3 5 6
1 2 4 8
1 5 6
3 5 9
1 2 4 6
4 5 6 7