小编Phi*_*man的帖子

对象可枚举但不可索引?

问题总结及疑问

我正在尝试查看可以枚举但不能索引的对象中的一些数据。我对 python 还是新手,但我不明白这是怎么可能的。

如果可以枚举它,为什么不能通过与枚举相同的方式访问索引?如果没有,有没有办法单独访问这些项目?

实际例子

import tensorflow_datasets as tfds

train_validation_split = tfds.Split.TRAIN.subsplit([6, 4])

(train_data, validation_data), test_data = tfds.load(
    name="imdb_reviews", 
    split=(train_validation_split, tfds.Split.TEST),
    as_supervised=True)

Run Code Online (Sandbox Code Playgroud)

选择数据集的一个子集

foo = train_data.take(5)
Run Code Online (Sandbox Code Playgroud)

可以foo用 enumerate迭代:

[In] for i, x in enumerate(foo):
    print(i)
Run Code Online (Sandbox Code Playgroud)

产生预期的输出:

0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试对其进行索引时,出现foo[0]此错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-44-2acbea6d9862> in <module>
----> 1 foo[0]

TypeError: 'TakeDataset' object does not support indexing
Run Code Online (Sandbox Code Playgroud)

python neural-network tensorflow kaggle

10
推荐指数
1
解决办法
1061
查看次数

标签 统计

kaggle ×1

neural-network ×1

python ×1

tensorflow ×1