예제 #1
0
 def produce_similarity_sets(list_of_lists):
     list_of_sets = list_of_lists_to_list_of_sets(list_of_lists)
     for pair_of_sets in make_pairs_of_sets(list_of_sets):
         if check_similarity_of_sets(pair_of_sets, list_of_sets):
             new = collapse_pair_of_sets(pair_of_sets)
             list_of_sets.append(new)
     return list_of_sets
예제 #2
0
def test_list_of_lists_to_list_of_sets():
    input_lists = [['a', 'b'], ['b', 'c']]
    result = list_of_lists_to_list_of_sets(input_lists)
    assert isinstance(result, list), 'result is not a list'
    for item in result:
        assert isinstance(item, set), '{} is not a set'.format(item)
    assert set('ab') in result, 'first set not found'
예제 #3
0
 def test_list_of_lists_to_list_of_sets(self):
     input_lists = [['a', 'b'], ['b', 'c']]
     result = list_of_lists_to_list_of_sets(input_lists)
     self.assertIsInstance(result, list, "result is not a list")
     for item in result:
         self.assertIsInstance(item, set, "{} is not a set".format(item))
     self.assertIn(set('ab'), result, "first set not found")
예제 #4
0
def intersection_of_list_of_lists(list_of_lists):
    tmp = list_of_lists_to_list_of_sets(list_of_lists)
    return list(intersection_of_list_of_sets(tmp))
예제 #5
0
def difference_of_lists(base_list, list_of_other_lists):
    list_of_other_sets = list_of_lists_to_list_of_sets(list_of_other_lists)
    return list(difference_of_sets(set(base_list), list_of_other_sets))