我第一次从Notebook运行这段代码时效果很好:
#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
答案 0 :(得分:1)
假设&#34;笔记本电脑&#34;是Jupyter(以前的ipython笔记本),你必须小心jupyter保持所有变量的状态。
- &GT;这意味着第二次运行以已经在第一次运行结束时的值初始化的变量开始。
避免这种情况的一种方法是重启内核;另一种是删除所有变量;还有一个是每次运行时初始化所有变量。
来自docs:
要重新启动内核(即计算引擎),请单击菜单Kernel - &gt;重新开始。这可以从头开始计算(例如删除变量,打开文件等等)。