如何在调试时调用Python列表?

时间:2012-04-25 15:49:21

标签: python debugging

我有以下python代码:

values = set([1, 2, 3, 4, 5])
import pdb
pdb.set_trace()

我运行脚本,我在调试shell中:

(pdb) list(values)
*** Error in argument: '(values)'
(Pdb)

如何在不调用调试器自己的list(values)命令的情况下调用调试器中的list

5 个答案:

答案 0 :(得分:50)

只需print

(Pdb) print list(values)

不要忘记为python 3版本添加括号

(Pdb) print(list(values))

答案 1 :(得分:36)

使用感叹号!逃避调试器命令:

(Pdb) values = set([1, 2, 3, 4, 5])
(Pdb) list(values)
*** Error in argument: '(values)'
(Pdb) !list(values)
[1, 2, 3, 4, 5]

答案 2 :(得分:0)

亨利,

由于此数据结构已经是一个序列,因此将其指定为列表是多余的。所以这样可以正常工作。

(Pdb) print values

(Pbd) print(values)

如果您使用的是Python3


可选择使用换行符

(Pdb) for x in values:  print x

(Pdb) for x in values:  print(x)

for Python3

答案 3 :(得分:0)

另一种有点黑客的方法是输入:

df=pd.read_csv(fl,na_filter=False)
df=df.replace({'nan':'None', '':'NA'})

print(df)

   Col1  Col2
0   neb   abc
1   ijd  None
2    NA    NA
3  2938    NA
4  None   909

lst=list 提示符下。接下来你可以写:

pdb

显然这不是推荐的答案。

答案 4 :(得分:0)

输入 interact 进入“交互模式”。

(Pdb) heros = ['Gecko', 'Catboy', 'Owlette']
(Pdb) list(heros)
*** Error in argument: '(heros)'
(Pdb) interact
*interactive*
>>> list(heros)
['Gecko', 'Catboy', 'Owlette']

“交互模式”还允许您处理名称与 PDB 命令冲突的变量。