Список наборов наборов в список наборов - PullRequest
0 голосов
/ 11 ноября 2019

Это набор данных:

data=[(frozenset({'I1'}), frozenset({'I2'})), (frozenset({'I1'}), frozenset({'I3'})), (frozenset({'I1'}), frozenset({'I4'})), (frozenset({'I2'}), frozenset({'I3'})), (frozenset({'I2'}), frozenset({'I4'})), (frozenset({'I3'}), frozenset({'I4'}))]

, и я хочу, чтобы он преобразовал его в список, как показано ниже:

[ frozenset({'I1','I2'}), frozenset({'I1','I3'}),...]

пробное преобразование

data=[(frozenset({'I1'}), frozenset({'I2'})), (frozenset({'I1'}), frozenset({'I3'})), (frozenset({'I1'}), frozenset({'I4'})), (frozenset({'I2'}), frozenset({'I3'})), (frozenset({'I2'}), frozenset({'I4'})), (frozenset({'I3'}), frozenset({'I4'}))]
for x in data:
    for y in x:
        #tests

это то, что я пытаюсь сделать

[ frozenset({'I1','I2'}), frozenset({'I1','I3'}),...]

1 Ответ

0 голосов
/ 11 ноября 2019

Вы хотите chain вместе frozenset s в каждом кортеже, а затем преобразовать каждую из этих цепочек в frozenset

from itertools import chain
result = list(map(frozenset, map(chain.from_iterable, data)))
# [frozenset({'I1', 'I2'}), frozenset({'I1', 'I3'}), frozenset({'I1', 'I4'}), frozenset({'I3', 'I2'}), frozenset({'I2', 'I4'}), frozenset({'I3', 'I4'})]
...