python - Python 中的 int 对象可以在函数内部变得可迭代吗?

标签 python int iterable

我正在尝试跟随 blog post标题为如何在 Python 中从头开始实现朴素贝叶斯

从博客中,这是定义按类类型分离数据库的函数的代码。

def separateByClass(dataset):
    separated = {}
    for i in range(len(dataset)):
        vector = dataset[i]
        if (vector[-1] not in separated):
            separated[vector[-1]] = []
        separated[vector[-1]].append(vector)
    return separated

但是当 vector 是一个 int 类型的对象时,我无法理解 vector[-1] 是如何正确使用的。如果我在函数外一个一个地尝试相同的命令,带有 vector[-1] 的代码行显然会抛出一个 TypeError: 'int' object has no attribute '__getitem__'。那么它在函数内部是如何工作的呢?

最佳答案

不,整数不会在函数或其他地方变成可迭代的。

但是,dataset 中的值不是整数。它们是列表;该文章在下一个片段中定义了数据集:

dataset = [[1,20,1], [2,21,0], [3,22,1]]

因此,当遍历数据集时,每个 vector 都是这些列表之一(首先是 [1, 20, 1],然后是 [2, 21, 0] 等),vector[-1] 是每个列表中的最后一个值。

关于python - Python 中的 int 对象可以在函数内部变得可迭代吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31514933/

相关文章:

python - 使用 django 和 bootstrap 类创建单选表单的问题

Java:多次设置int值

c - 数据变量/常量和类型 int 常量 (C Primer Plus)

java - 对可迭代对象进行分块

python - 在 Python 中使用 GEKKO 的 ODE 系统中的数组变量

python - uWSGI-导入错误: No module named os

c# - 在 C# 中从文件读取二维矩阵到二维 int 数组

iterator - 是否有用于从 julia 中的类似生成器的函数创建快速迭代器的宏?

javascript - ES6 将可迭代对象转换为数组时间复杂度

python - python 如何使用 dir(object) 显示所有属性和方法的列表?