加载数据集的时候经常用到def __getitem__(self, index)

本文介绍了Python中的__getitem__和__len__魔法方法,这两个方法使得对象能够支持索引访问和获取长度操作。通过定义这两个方法,数据集可以像列表一样被切片和获取长度。__getitem__用于根据索引获取数据集中的元素,而__len__则返回数据集的元素数量。这对于自定义数据结构的实现至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目标:

例如:

  • def __getitem__(self, index)使用方法

学习内容:

  1. def __getitem__(self, index)使用方法

这个是python的magic方法。例如对一个对象some_object

some_item = some_object[idx]

等价于

some_item = some_object.__getitem__(idx)

这个方法的参数idx就是你在[]之间给定的idx,相当于切片功能;还有一个例子是

len(some_object)

其实等价于

some_object.__len__()

所以你的dataset定义了这两个方法之后,其实变相是支持了 [idx] 和 len 的切片与取长度的操作。

数据集本质应当是所有数据样本的一个列表,因此每个样本都有对应的索引index。我们取用一个样本最简单的方式就是用该样本的index从数据列表中把它取出来。__getitem__就是做这样一件事。

参考链接:https://www.zhihu.com/question/443036026/answer/1717480194

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjm2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值