list.pop
принимает в качестве аргумента индекс элемента, который вы хотите извлечь из списка, но когда вы делаете new_list.pop(word)
, вы фактически предоставляете сам элемент, поэтому возникает ошибка.
ОтДокументы: https://docs.python.org/3/tutorial/datastructures.html
list.pop ([i])
Удалить элемент в заданной позиции в списке и вернуть его.Вы можете легко решить эту проблему, используя словарное понимание, когда вы включаете в свой список только значения длиной> 7
Чтобы это исправить, просто найдите индекс слова, которое вы хотите вывести, через list.remove()
Таким образом, строка
new_list.pop(word)
изменится на
new_list.remove(word)
Но лучшим подходом может быть использование такого понимания списка, как
word_dict = {'show': ['display', 'exhibit', 'convey', 'communicate', 'manifest', 'disclose'],
'slow': ['unhurried', 'gradual', 'leisurely', 'late', 'behind', 'tedious', 'slack']}
#Iterate through the values of the list and pick one with length > 7
res = [v for value in word_dict.values() for v in value if len(v) > 7 ]
print(res)
Выход будет
['communicate', 'manifest', 'disclose', 'unhurried', 'leisurely']