Общая цель этой функции состоит в том, чтобы взять список слов, которые мы получили в качестве входных данных, список слов, чтобы проверить, появляются ли они на входе, и список возможных выходных данных, которые нужно вернуть, если что-то из спискапроверка есть в списке ввода.
Я определил функцию, называемую селектором, с тремя входами input_list, check_list и return_list. Я инициализировал вывод None. Затем я создал цикл for для просмотра списка и проверки того, что текущий элемент input_list находится в check_list. Если он находится в списке, выходные данные назначаются функции с именем random.choice в return_list.
Мой код:
def selector(input_list, check_list, return_list):
output = None
for u in range(len(input_list)):
if input_list[u] == check_list[u]:
output = random.choice(return_list)
return output
Приведенный выше код не вызывает ошибок при выполнении, однакоЯ продолжаю получать ошибку индекса при утверждении своей функции. Я считаю, что это как-то связано с условной частью моего кода.
assert callable(selector)
assert selector(['in', 'words'], ['words'], ['yes']) == 'yes'
assert selector(['in', 'words'], ['out'], ['yes']) == None
IndexError Traceback (most recent call last)
<ipython-input-77-e84ac970fd7f> in <module>
1 assert callable(selector)
2
----> 3 assert selector(['in', 'words'], ['words'], ['yes']) == 'yes'
4 assert selector(['in', 'words'], ['out'], ['yes']) == None
<ipython-input-76-2445f1f5eac9> in selector(input_list, check_list, return_list)
3 output = None
4 for u in range(len(input_list)):
----> 5 if input_list[u] == check_list[u]:
6 output = random.choice(return_list)
7
IndexError: list index out of range