gpt4 book ai didi

python - 对象是可枚举的但不可索引?

转载 作者:行者123 更新时间:2023-12-02 00:35:22 24 4
gpt4 key购买 nike

问题总结和疑问

我正在尝试查看对象内的一些数据,这些数据可以枚举但不能索引。我对 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)

选择数据集的子集

foo = train_data.take(5)

可以使用枚举迭代foo:

[In] for i, x in enumerate(foo):
print(i)

生成预期的输出:

0
1
2
3
4

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

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

TypeError: 'TakeDataset' object does not support indexing

最佳答案

只有类具有相应的方法时,Python 才允许执行这些操作:

任何类都可以定义一个类而不定义另一个类。如果效率低下,通常不定义 __getattr__

<小时/>

1 __next__ 对于 __iter__ 返回的类是必需的。

关于python - 对象是可枚举的但不可索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59525014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com