Python代码第一次运行良好,但第二次失败
我第一次从笔记本运行这段代码时,它工作正常:Python代码第一次运行良好,但第二次失败,python,jupyter-notebook,jupyter,Python,Jupyter Notebook,Jupyter,我第一次从笔记本运行这段代码时,它工作正常: #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(let
#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
TypeError回溯(最近一次调用)
在()
7来自itertools导入置换
8适用于范围内的i(noOfLetters):
---->9结果追加(列表(排列(字母,i+1)))
TypeError:“列表”对象不可调用
假设“notebook”是Jupyter(以前是ipython notebook),您必须小心Jupyter保留所有变量的状态
-->这意味着第二次运行开始时,变量已经初始化为第一次运行结束时的值
避免这种情况的一种方法是重新启动内核;二是删除所有变量;还有一个是每次运行时初始化所有变量
从:
要重新启动内核(即计算引擎),请单击菜单kernel->restart。这对于从头开始计算非常有用(例如,删除变量、关闭打开的文件等)
在这段代码之后的某个时刻,您将执行
list=
。这会隐藏内置的列表
,并导致问题。将其重命名为lst
或其他名称。尽量不要在Hanks Adam中对内置项进行阴影处理,确实如此。@GretelDePaepe如果必须使用与内置项相同的名称,一种约定是在名称后面加下划线:例如,在本例中,list=不会覆盖内置列表的code>。