【问题标题】:Why does slice [:-0] return empty list in Python为什么 slice [:-0] 在 Python 中返回空列表
【发布时间】:2015-09-01 23:22:00
【问题描述】:

今天在编写一些单元测试时偶然发现了一些稍微令人困惑的东西:

blah = ['a', 'b', 'c']
blah[:-3] # []
blah[:-2] # ['a']
blah[:-1] # ['a', 'b']
blah[:-0] # []

我一生都无法弄清楚为什么blah[:-0] # []应该是这种情况,该模式似乎肯定表明它应该是['a', 'b', 'c']。任何人都可以帮助阐明为什么会这样吗?无法在文档中找到为什么会这样。

【问题讨论】:

  • - 简单地表示倒数以找到起点。正如[:-2] 给出一个包含最后 2 个元素的列表,[:-0] 给出一个包含最后 0 个元素的列表。
  • [:-2] 给出一个 list 包含所有元素除了最后两个。

标签: python list slice negative-number


【解决方案1】:

-00,从包含 list 开头到索引不包含 0 的切片是空的 list

【讨论】:

  • 简单地讨论'-0'是'0',你必须记住编译器在解析时正在评估术语,所以当它看到'-0'时,它最终会保持'0' .
  • 这就是“-00”的全部主旨。无需记住同一件事两次。
【解决方案2】:

Python 不会将 -00 区别对待。

blah[:0]

表示直到但不包括第一个元素的所有元素。这是一个空列表,和blah[:-0] 完全一样。

你可以通过检查来测试这个

blah[0:]

是整个列表,从第一个元素开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 2014-09-25
    • 1970-01-01
    • 2022-10-25
    • 2017-01-25
    • 2020-01-03
    • 1970-01-01
    相关资源
    最近更新 更多