File tree Expand file tree Collapse file tree 1 file changed +40
-6
lines changed
Expand file tree Collapse file tree 1 file changed +40
-6
lines changed Original file line number Diff line number Diff line change 1313
1414# Possible sublist categories.
1515# Change the values as you see fit.
16- SUBLIST = None
17- SUPERLIST = None
18- EQUAL = None
19- UNEQUAL = None
16+ SUBLIST = "SUBLIST"
17+ SUPERLIST = "SUPERLIST"
18+ EQUAL = "EQUAL"
19+ UNEQUAL = "UNEQUAL"
2020
2121
22- def sublist (list_one , list_two ):
23- pass
22+ def sublist (list_one : list , list_two : list ) -> str :
23+ """
24+ Classify the relationship between two lists.
25+
26+ Determines whether ``list_one`` and ``list_two`` are equal, or whether one
27+ is a contiguous sublist of the other, and returns the appropriate constant.
28+
29+ :param list_one: First list to compare.
30+ :type list_one: list
31+ :param list_two: Second list to compare.
32+ :type list_two: list
33+ :returns: One of ``EQUAL``, ``SUBLIST``, ``SUPERLIST``, or ``UNEQUAL``.
34+ :rtype: str
35+ """
36+ if list_one is list_two or list_one == list_two :
37+ return EQUAL
38+
39+ if len (list_one ) == len (list_two ) and not (
40+ list_one is list_two or list_one == list_two
41+ ):
42+ return UNEQUAL
43+
44+ l1 : str = "," .join (str (i ) for i in list_one )
45+ l2 : str = "," .join (str (i ) for i in list_two )
46+
47+ if len (l1 ) > len (l2 ):
48+ for i in range (0 , len (l1 ) - len (l2 ) + 1 ):
49+ if l1 [i :].startswith (l2 ):
50+ return SUPERLIST
51+
52+ if len (l2 ) > len (l1 ):
53+ for i in range (0 , len (l2 ) - len (l1 ) + 1 ):
54+ if l2 [i :].startswith (l1 ):
55+ return SUBLIST
56+
57+ return UNEQUAL
You can’t perform that action at this time.
0 commit comments