LINUX.ORG.RU

Как сравнить длину списков по принципу связного списка?

 


0

1

Список списков = max_list_from_all_plates Как поменять код чтобы сравнить с помощью итерации c условием? то есть:

output

list1 list 2 #(if equal, take the current list to compare with next list ) list2 list 3 #(if not equal, do not take the current/or next list to compare with the next list)



 def makelist(self):
        for n in range(0, len(self.max_list_from_all_plates)-1): 

            self.lenx = len(self.max_list_from_all_plates[n])
            self.leny = len(self.max_list_from_all_plates[n+1])
            
            if self.leny == self.lenx:
                
                print(self.leny, self.lenx)
                print(self.max_list_from_all_plates[n], '         ', self.max_list_from_all_plates[n+1])

else: # (What to do if lists not equal?? do not take the current/or next list to compare with the next  list? I just want to get only equal length lists. But how? 0_o)


output
7 7

7 7

7 7

7 7

7 7

7 7

не знаю как развязать проблему с условием, хочу взять только одинаковые по длинее списки, есть рациональный способ это сделать?

Перемещено leave из desktop

Хотя вроде бы нашла решение без использования связного списка



 def makelist(self):
        for n in range(0, len(self.max_list_from_all_plates)-1): 

            self.lenx = len(self.max_list_from_all_plates[n])
            self.leny = len(self.max_list_from_all_plates[n+1])
            
            if self.leny == self.lenx:
                
                print(self.leny, self.lenx)
                print(self.max_list_from_all_plates[n], '         ', self.max_list_from_all_plates[n+1])
7 7

7 7

7 7

7 7

7 7

7 7
katemisik ()

О боги, что за дичь… Зачем ты для локальных для цикла проверок меняешь атрибуты класса? self.leny В чем проблема просто использовать локальную переменную? И вообще это решается в две строки

target_len = len(max_list_from_all_plates[0])
all(len(sublist) == target_len for sublist in max_list_from_all_plates)
Aswed ★★★★★ ()