Python: лучший способ выяснить, из какого набора получены результаты команды'mmetric_difference`?

Какова лучшая практика для выяснения, из каких наборов результатов symmetric_difference из?

intersect = s1.symmetric_difference(s2)

Результат должен выглядеть так

{'34':'s1', '66':'s2'} 

Где "34", "66" - уникальные предметы.

2 ответа

Решение

Чтобы сделать это максимально чисто, должно работать следующее:

intersect = s1.symmetric_difference(s2)
result = dict([(i, ("s1" if i in s1 else "s2")) for i in intersect])
{x : 's1' for x in intersect if x in s1} + {x : 's2' for x in intersect if x in s2}

или же

{x : ('s1' if x in s1 else 's2') for x in intersect}
Другие вопросы по тегам