Как извлечь значение из замороженного набора, который был преобразован в строку с python? - PullRequest
0 голосов
/ 12 марта 2020

Я работаю над 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

1 Ответ

0 голосов
/ 12 марта 2020

Работает ли у вас eval?

Подпись: eval (источник, глобальные переменные = нет, локальные = нет, /)

Строка документации: оценка указанного источника в контекст глобальных и локальных.

list(eval('frozenset([1])'))

Возвращает:

[1]

...