Оценка длины строк внутри и размеров списков списков

#arrays #python-3.x #list #error-handling #user-defined-functions

#массивы #python-3.x #Список #обработка ошибок #определяемые пользователем функции

Вопрос:

Мне нужно разработать функцию, которая принимает два списка списков и генерирует ValueError, если:

  1. Список списков имеет несравнимые размеры
  2. Строки в списках не имеют одинаковой длины

Функция должна быть на ванильном python и не может использовать какие-либо библиотеки

Ответ №1:

 def evaluateListsDimensions(first, second):
    
    # Compute both row numbers
    firstSize = len(first)
    secondSize = len(second)
    
    # If those do not match raise ValueError
    if firstSize != secondSize:
        raise ValueError
    
    # If the lists have al least 1 row check their dimensions
    elif firstSize != 0:
   
        # All rows have to be the same size
        sizeToMach = len(first[0])
        allSizesFirst = all(len(list)== sizeToMach for list in first)
        
        # Raise ValueError if at least one was not of the correct size
        if not allSizesFirst:
            raise ValueError
        
        # Check the second group of rows
        # This solution is if you want the the size of both lists is the same
        # Otherwise uncomment the next line 
        # sizeToMatch = len(second[0]) 
        allSizesSecond = all(len(list)== sizeToMach for list in second)
        
        # Raise ValueError if at least one was not of the correct size 
        if not allSizesSecond:
            raise ValueError
  

Если вы хотите, вы можете добавить пользовательское сообщение для вашего ValueError, используя эту строку:

 raise ValueError('List with wrong dimensions')