我需要比较集合,看看是否有一个集合包含在另一个
中我正在导入两个文本文件作为集合。
.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'])
'那是假' 出现在set2的第一个索引中'不幸的是那是假的'。如何打印set2中包含set1的索引?
答案 0 :(得分:0)
应该更改问题以反映订单重要的事实,因此值是列表,而不是集合。在这种情况下,下面的代码应该完成工作
# returns True if l1 is a "substring sublist" of l2
def is_substring_sublist(l1, l2):
next_idx1s = [0]
target_idx = len(l1)
for idx2 in range(len(l2)):
idx1s = [x for x in next_idx1s]
next_idx1s = [0]
for idx1 in idx1s:
if l1[idx1] in l2[idx2]:
next_idx1s.append(idx1+1)
if target_idx in next_idx1s:
return True
return False
# Unit tests
list1 = ['a', 'b']
list2 = ['b', 'a']
list3 = ['c', 'a', 'b', 'd']
list4 = ['a', 'a', 'b']
assert is_substring_sublist(list1, list1)
assert not is_substring_sublist(list1, list2)
assert is_substring_sublist(list1, list3)
assert is_substring_sublist(list1, list4)
assert not is_substring_sublist(list2, list4)