Skip to main content
 首页 » 编程设计

python slice() 函数 vs slice notation之如何处理 slice() 中的空值

2025年05月04日14softidea

文档涵盖了 slice() 的 3 种用法对象:

  • obj[:stop] = obj[slice(stop)]
  • obj[start:stop] = obj[slice(start, stop)]
  • obj[start:stop:step] = obj[slice(start, stop, step)]

但是事先不知道对象的长度怎么办呢?将 stop 设置为非常高的值,例如 2E32-1?

  • obj[start:] = obj[slice(start, 2E32-1)]?
  • obj[:] = obj[slice(2E32-1)]?

请您参考如下方法:

您可以将 stop 参数设置为 None 以无限期地继续。

obj = [1, 2, 3, 4] 
 
obj[2:] == obj[slice(2, None)] 
# == [3, 4] 
 
obj[:] == obj[slice(None, None)] 
# == [1, 2, 3, 4] 
 
obj[::2] == obj[slice(None, None, 2)] 
# == [1, 3]