python - 使用 3 个参数在 python 中扩展切片

标签 python list slice

我正在尝试理解切片。这个切片是如何工作的?

>>> a=['c','b']
>>> a
['c', 'b']
>>> a[-3:-1:3]
['c']

我已经阅读了所有帖子,但找不到答案。据我了解,切片应该是 [start:stop:step] 。但如果我从 -3 开始,一步之后我就处于 0。 这到底是如何运作的?打印哪些索引?范围内的那些?

最佳答案

首先注意a[-3:-1]['c']a[-3:-1] 是一个切片,包含 [a[-3], a[-2]] 中的所有元素(如果存在)。

>>> a=['c','b']
>>> a[-3:-1]
['c']

a[-3] 不存在(它会引发 IndexError),但 a[-2]'c':

>>> a[-2]
'c'

这是有道理的,因为 a[-1] 是最后一个元素 'b'。因此,a[-2] 是倒数第二个元素。

最后,

>>> a[-3:-1:3]
['c']

因为这是 a[-3:-1] 中每隔三个元素。由于 a[-3:-1] 中只有一个元素,因此每三个元素都与第一个也是唯一的元素相同。

管理切片的确切规则由Notes 3 and 5 of the docs section entitled "Common Sequence Operations"给出。 .

关于python - 使用 3 个参数在 python 中扩展切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808534/

相关文章:

python - pandas 数据框 to_csv 适用于 sep ='\n' 但不适用于 sep ='\t'

python - pandas 交叉表中的列困惑

从流中读取多个 protobuf 消息的 python 示例

java - 对来自 GAE 数据存储的查询响应进行排序

python - 字符串切片的不可编写脚本的 Int 错误

json - Go json.Unmarshal() 适用于单个实体但不适用于 slice

python - 如何聚合两列中的值并从中创建一个新列?

python向后列表

c# - 将值合并到一个列表中

javascript - 如何使用 reducer 和处理事件从事件数组中更新事件?