#arrays #python-3.x #list #error-handling #user-defined-functions
#массивы #python-3.x #Список #обработка ошибок #определяемые пользователем функции
Вопрос:
Мне нужно разработать функцию, которая принимает два списка списков и генерирует ValueError, если:
- Список списков имеет несравнимые размеры
- Строки в списках не имеют одинаковой длины
Функция должна быть на ванильном 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')