猿问

python中的列表从0开始索引

我想从列表的 1 而不是 0 开始索引,以便它有助于进一步编码。有没有办法做到这一点?我看到很多帖子都对数据框做同样的事情,但对列表却没有。


明月笑刀无情
浏览 390回答 2
2回答

繁花如伊

您可以子类化list和覆盖涉及索引的方法:class List(list):    def __getitem__(self, i):        return super().__getitem__(i - 1 if isinstance(i, int) else slice(i.start and i.start - 1, i.stop and i.stop - 1, i.step))    def insert(self, i, x):        super().insert(i - 1, x)    def pop(self, i=0):        return super().pop(i - 1)    def index(self, x, start=1, end=0):        return super().index(x, start - 1, end - 1) + 1以便:a = List((5, 3, 6, 2, 7, 1))print(a[1])print(a[0])print(a[2:])print(a[:3])print(a[2:5:2])a.insert(2, 4)print(a)print(a.pop(2))print(a)print(a.index(3, 2))会输出:51[3, 6, 2, 7, 1][5, 3][3, 2][5, 4, 3, 6, 2, 7, 1]4[5, 3, 6, 2, 7, 1]2请注意,索引1现在表示第一项,索引0现在将代替索引-1来表示列表中的最后一项。

慕尼黑的夜晚无繁华

首先,习惯索引 0。但是要回答您的问题,List如果您想要完全支持,您可以继承该类并覆盖每个方法以从 0 开始......虽然不明智。
随时随地看视频慕课网APP

相关分类

Python
我要回答