【发布时间】:2016-03-19 20:46:16
【问题描述】:
我需要比较集合以查看一个集合是否包含在另一个集合中
我正在导入两个文本文件作为集合。
-
.txt文件 1:http://pastebin.com/P1t6eQV1 -
.txt文件 2:http://pastebin.com/eQn883Sp
从.txt 文件中,您可以看到集合由行组成。
set1 = set(['thats true', 'thats false'])set2 = set(['Well done thats true', 'Unfortunately thats false'])
'thats false' 出现在 set2 'Unfortunately thats false' 的第一个索引中。如何打印 set1 包含在 set2 中的索引?
【问题讨论】:
-
听起来您不仅要检查一个集合是否是另一个集合的子集,还要检查一个字符串(集合的元素)是否是另一个字符串的子字符串。你能澄清一下吗?
-
您正在测试 子字符串;你的集合之间没有严格的交集,Python 集合对象不支持你想要的开箱即用的东西。您要么必须进行 N x M 测试(创建两组的乘积并测试每个组合),要么构建相邻单词的索引以更有效地进行短语搜索。但这太宽泛了,无法在 SO 上讨论。
-
@T.Silver 集合是否包含字符串?对不起,如果是这样你是对的。我想搜索整个第二组,看看第一组是否包含在第二组中的任何位置。
-
所以你想检查
set1中的每个字符串s是否在set2中有一个字符串ss,这样s是ss的一个子字符串。如果这是正确的,我会建议编辑问题。 -
如果您指的是集合中项的索引,则不能这样做,因为集合不是有序的。