为什么额外的打印会导致此python代码中出现AttributeError?

时间:2015-05-26 18:38:10

标签: python

好像我拿出印刷品,一切运行正常,但如果我试图打印出来

len(set(row[5].values()))

它给出了

AttributeError: 'int' object has no attribute 'values'

这是for循环

    for row in my_dict[my_options].itervalues():
        row[3] = len(set(row[3]))
        row[4] = len(set(row[4]))
        row[5] = len(set(row[5].values())) # This runs
        row[6] = len(set(row[6].values()))

        print row[5] # returns 1
        print len(set(row[5].values())) # This run into Attribute Error

打印是否在后面做任何可能导致错误的事情?如果

row[5] = len(set(row[5].values()))

导致错误,它应该在打印行之前输出错误,但它没有,这是令人困惑的。

任何帮助都将不胜感激。

感谢

1 个答案:

答案 0 :(得分:1)

如评论中所述 使用row[5] = len(set(row[5].values())) # This runs时 你实际设置了行[5]的值 由于打印仍在循环内,因此row [5]的值将是len(整数)的结果 和int没有values()函数