def _normalize(key, size): # Includes last index. if isinstance(key, slice): start, stop, _ = key.indices(size) if stop > start: return start, stop - 1 else: if key < 0: key += size if 0 <= key < size: return key, key raise IndexError("invalid index")
时间: 2024-01-23 22:02:04 浏览: 84
only_normalize.m:正常化-matlab开发
这是一个用于规范化索引的函数。它接受两个参数,key 和 size。key 可以是一个整数或切片对象,表示要访问的元素索引或范围。size 表示索引的最大值,即元素个数。
如果 key 是一个切片对象,那么函数会使用 indices() 方法将其转换为起始索引、结束索引和步长。然后,函数会检查切片对象的结束索引是否大于起始索引,如果是,则将结束索引减 1,并返回起始索引和结束索引。
如果 key 是一个整数,那么函数会检查它是否小于 0,如果是,则将其转换为正数索引。然后,函数会检查索引是否在有效范围内,如果是,则返回该索引。
如果 key 不是有效的索引或切片,则函数会抛出 IndexError 异常。
阅读全文