Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的int对象能否在函数中变得可移植?_Python_Int_Iterable - Fatal编程技术网

Python中的int对象能否在函数中变得可移植?

Python中的int对象能否在函数中变得可移植?,python,int,iterable,Python,Int,Iterable,我正试图遵循标题为“如何在Python中从头开始实现朴素贝叶斯”的内容 在博客中,这是定义函数的代码,用于按类类型分隔数据库 def separateByClass(dataset): separated = {} for i in range(len(dataset)): vector = dataset[i] if (vector[-1] not in separated): separated[vector[-1]]

我正试图遵循标题为“如何在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”对象没有属性“\uu getitem”
。那么它在函数中是如何工作的呢?

不,整数在函数中或其他地方都不可编辑

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

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

因此,当在数据集上迭代时,每个
向量都是这些列表中的一个(
[1,20,1]
,然后是
[2,21,0]
,等等),并且
向量[-1]
是这些列表中的最后一个值。

在本例中,
数据集[i]
是列表的列表:

dataset = [[1,20,1], [2,21,0], [3,22,1]]
这意味着,
dataset[i]
本身就是一个列表,例如:

dataset[0] = [1,20,1]

因此,
数据集[0][1]
将是
1
数据集[0]
的最后一个元素通常是整数元组,这取决于维度的数量。数据集定义在链接站点上的代码正下方,
数据集=[1,20,1],[2,21,0],[3,22,1]
。这不算什么,非常感谢。这是我的错误。为了尝试这个函数,我创建了一个数据集作为整数列表,而不是列表列表。我现在明白了。谢谢你们@martijn pieters和你们所有人。