我有一个包含多组字符串的列表,我想找到每个字符串与集合中其他字符串之间的对称差异。
例如,我有以下列表:
targets = [{'B', 'C', 'A'}, {'E', 'C', 'D'}, {'F', 'E', 'D'}]
对于上述情况,所需的输出是:
[2, 0, 1]
因为在第一个集合中,在任何其他集合中都找不到 A 和 B,对于第二个集合,该集合没有唯一元素,而对于第三个集合,在任何其他集合中都找不到 F。
我考虑过倒退;找到每个集合的交集并从列表的长度中减去交集的长度,但是 set.intersection(*) 似乎不适用于字符串,所以我被卡住了:
set1 = {'A', 'B', 'C'}
set2 = {'C', 'D', 'E'}
set3 = {'D', 'E', 'F'}
targets = [set1, set2, set3]
>>> set.intersection(*targets)
set()