如何使数组从下标 1 而不是 python 中的下标 0 开始?
基本上是在python中解决这个问题。
如果你真的想这样做,你可以创建一个包装列表的类,并实现__getitem__
和__setitem__
成为一个基础。例如:
def __getitem__(self, index):
return self.list[index-1]
def __setitem__(self, index, value):
self.list[index-1] = value
但是,要获得 Python 列表的全部灵活性,您必须实现对切片、删除等的支持。如果您只想要一个简单的列表视图,一次一个项目,这应该可以为您完成。 '
有关创建类似于序列或映射的自定义类的更多信息,请参阅Python 数据模型文档。
您可以使用 enumerate() 方法
a = ['a', 'c', 'v', 's']
for i,v in enumerate(a, 1):
print i, v
1 a
2 c
3 v
4 s
+1 到最大。这是您可以尝试的其他方法:
只需None
在列表的索引 0 处添加一个。这应该为您提供功能。None
当您将列表传递给 MATLAB 时,您只需要记住剪掉前导
您可以使用fidx
模块的自定义索引:
import fidx
# create custom type `list1b` from `list`
fidx.add(list, name='list1b')
# add a map for int indexes (i -> i-1)
fidx.list1b.set_index_map(int, lambda _,i: i-1, override=True)
# create your list
b = fidx.list1b([1,2,3])
print(b[1], b[2], b[3]) # (1, 2, 3)