В первый раз я запускаю этот блок кода из ноутбука он работает отлично:Python код отлично работает в первый раз, но терпит неудачу во второй раз
#Which letters and how many
letters = ["a","b","c"]
noOfLetters = len(letters)
#Looking for all permutations
resultA = []
from itertools import permutations
for i in range(noOfLetters):
resultA.append(list(permutations(letters,i+1)))
Если я запустить его снова (без перезагрузки ядра) я получаю следующее сообщение об ошибке:
TypeError Traceback (most recent call last)
<ipython-input-5-4050a4ce7a36> in <module>()
7 from itertools import permutations
8 for i in range(noOfLetters):
----> 9 resultA.append(list(permutations(letters,i+1)))
TypeError: 'list' object is not callable
В какой-то момент после этого кода, вы 'список = <что-то еще>'. Это затеняет встроенный «список» и вызывает проблему. Переименуйте его в 'lst' или что-то еще. Старайтесь никогда не теневать встроенные функции –
Спасибо Адаму, это действительно так. – GDP
@GretelDePaepe, если вы * должны * использовать то же имя, что и встроенное, одно соглашение заключается в добавлении подчеркивания к имени: например, в этом случае 'list_ =. , .', который не будет перезаписывать встроенный 'list'. – dbliss