Ana*_*udi 2 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]] = []
separated[vector[-1]].append(vector)
return separated
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么vector[-1]是正确使用时vector是一个int类型的对象.如果我在函数外逐个尝试相同的命令,那么代码行vector[-1]显然会抛出一个TypeError: 'int' object has no attribute '__getitem__'.那么它是如何在函数内部工作的?
不,整数不会在函数或其他地方变得可迭代.
但是,值dataset 不是整数.他们是名单; 本文定义了下一个片段中的数据集:
dataset = [[1,20,1], [2,21,0], [3,22,1]]
Run Code Online (Sandbox Code Playgroud)
因此,当迭代数据集时,每个vector都是这些列表中的一个([1, 20, 1]首先,然后[2, 21, 0]等),并且vector[-1]是每个列表中的最后一个值.
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |