没有,但是你可以创建一个类来处理它。基本上你需要覆盖
__getitem__
方法,检查传递的值是否为元组,在这种情况下,将相应返回:
class MatlabList(list):
def __init__(self, *args):
if len(args) > 1:
return super().__init__(args)
return super().__init__(*args)
def __getitem__(self, item):
if isinstance(item, tuple):
# Remove the non-needed tuple in case it onle has one element
if len(item) == 1:
return self[item[0]]
if isinstance(item[0], slice):
return MatlabList(map(lambda x: x[item[1:]], self[item[0]]))
return self[item[0]][item[1:]]
return super().__getitem__(item)
lst = MatlabList(
MatlabList(111, 111, 4523.123, 111, 111),
MatlabList(111, 111, 4526.15354, 111, 111),
MatlabList(111, 111, 4580.112, 111, 111),
)
lst[1,2] # cell at 2nd row, 3rd column
lst[1,:] # 2nd row
lst[:,2] # 3rd column