def checkio(lines_list): square_list = [] temp_lines_list = [0] * 4 for line_1 in lines_list: temp_lines_list[0] = line_1 for line_2 in lines_list: if line_2 in temp_lines_list[:1]: continue if (line_1[1] not in line_2) and (line_1[0] not in line_2): continue temp_lines_list[1] = line_2 for line_3 in lines_list: if line_3 in temp_lines_list[:2]: continue if (line_2[1] not in line_3) and (line_2[0] not in line_3): continue temp_lines_list[2] = line_3 for line_4 in lines_list: if line_4 in temp_lines_list[:3]: continue if (line_3[1] not in line_4) and (line_3[0] not in line_4): continue if (line_1[0] not in line_4) and (line_1[1] not in line_4): continue temp_lines_list[3] = line_4 #print(temp_lines_list) temp_lines_list.sort() #print(temp_lines_list) #print(square_list) #print(temp_lines_list in square_list) if temp_lines_list not in square_list: square_list.append(temp_lines_list) print('square_list = ', square_list) return(len(square_list)) res = checkio([[1, 2], [3, 4], [1, 5], [2, 6], [4, 8], [5, 6], [6, 7], [7, 8], [6, 10], [7, 11], [8, 12], [10, 11], [10, 14], [12, 16], [14, 15], [15, 16]]) print(res)
При появлении новой комбинации она не добавляется, а как бы заменяет предыдущую.
Помогите, пожалуйста. Я действительно не могу понять в чем дело. Пробовал делать square_list в виде set, но он же путает элементы местами и из-за этого создается большее число комбинаций. Потом пробовал добавлять линии в square_list без проверок, но в конце получался список с большим числом абсолютно одинаковых линий.