Python比较集

2024-06-13 10:42:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要比较集合,看看一个集合是否包含在另一个集合中

我正在导入两个文本文件作为集合。在

.txt文件中,您可以看到集合由行组成。在

  • set1 = set(['thats true', 'thats false'])

  • set2 = set(['Well done thats true', 'Unfortunately thats false'])

“that is false”出现在set2“的第一个索引中,不幸的是,that is false”。如何打印set1包含在set2中的索引?在


Tags: 文件txtcomfalsetruehttpthatis
1条回答
网友
1楼 · 发布于 2024-06-13 10:42:50

这个问题应该改变,以反映顺序很重要的事实,因此值是列表,而不是集合。在这种情况下,下面的代码应该可以完成这项工作

# 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)

相关问题 更多 >