确定集合是否包含不同集合中的值

kyr*_*nia 0 python set python-3.x

我希望找到一个集合是否包含除另一个集合中包含的值以外的任何值.

目前我有代码:

 set_entered = set(["ok_word_1", "ok_word_2", "not_ok_word"])
 set_allowable = set(["ok_word_1", "ok_word_2","ok_word_3", "ok_word_4"])

 set_entered_temp = set(set_entered)
 for item in set_allowable :
    set_1_temp.discard(item)
 if len(set_entered_temp ) > 0:
     print ("additional terms")
 else:
    print ("no additional terms")
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?显然,很容易看出一个集合是否包含一个元素[例如集合的并集],但是看不到一个明显的方法来看一个集合是否包含一个集合之外的元素.

更新

只是为了澄清,我只是想看看是否有一个术语entered set没有出现在allowable集合中.[即我不想看两组之间是否存在差异,而只是输入组中是否存在不在另一组中的值].

Del*_*gan 5

你可以减去这两组:

if set_1 - set_2:
    print("Additional terms")
Run Code Online (Sandbox Code Playgroud)

set_2将删除每个元素set_1.如果结果集不为空,则表示至少有一个set_1未包含的值set_2.

请注意,空集被解释为False,这就是这个if条件有效的原因.