Tóm tắt vấn đề và câu hỏi
Tôi đang cố gắng xem xét một số dữ liệu bên trong một đối tượng có thể được liệt kê nhưng không được lập chỉ mục. Tôi vẫn còn mới với trăn, nhưng tôi không hiểu làm thế nào điều này là có thể.
Nếu bạn có thể liệt kê nó, tại sao bạn không thể truy cập chỉ mục thông qua cách liệt kê tương tự? Và nếu không, có cách nào để truy cập các mục riêng lẻ không?
Ví dụ thực tế
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)
Lấy một tập hợp con của tập dữ liệu
foo = train_data.take(5)
Tôi có thể lặp đi lặp lại foo
với liệt kê:
[In] for i, x in enumerate(foo):
print(i)
tạo ra sản lượng dự kiến:
0
1
2
3
4
Nhưng sau đó, khi tôi cố gắng lập chỉ mục vào nó, foo[0]
tôi gặp lỗi này:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-44-2acbea6d9862> in <module>
----> 1 foo[0]
TypeError: 'TakeDataset' object does not support indexing