python - 带切片的范围说明

标签 python python-3.x range slice

456是如何变成459的?

>>> a = range(123, 456, 7)[1::4]  
>>> print(a)
range(130, 459, 28)

最佳答案

首先。

a = range(123, 456, 7)
print(list(a))
#[123, 130, 137, 144, 151, 158,.....431, 438, 445, 452]

即我们得到一个从 123 到 456 的列表,步长为 7

然后我们尝试下一步。

a = range(123, 456, 7)[1::4]
print(list(a))
#[130, 158, 186, 214, 242, 270, 298, 326, 354, 382, 410, 438]

相当于从 130 开始,步长为 28,最后一个值为 459,即 range(130, 459, 28),这也告诉你从第一个元素开始,从范围中取出每第四个元素。

关于python - 带切片的范围说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790709/

相关文章:

python - ret = torch._C._nn.nll_loss(input, target, weight, _Reduction.get_enum(reduction), ignore_index) 抛出 IndexError : Target 42 is out of bounds

python - 在三引号中使用变量 (Python)

python - pandas 中用于根据 df 上的应用函数的输出创建数据帧的正确习惯用法是什么?

Python setter 也返回一个值

python - "from pylab import *"返回 NoneType 对象不可迭代

c++ - 为什么标准不允许 std::for_each 在无效的随机访问迭代器范围内具有明确定义的行为?

jquery datepicker范围(mindate maxdate)不起作用

python - Python服务器从所有连接的客户端获取recv,而不仅仅是从连接的第一个客户端获取

python - Pyinstaller - 使用 multiprocessing.freeze_support 时为 "Fatal error ! Failed to execute script"

python - 如何在 tabula-py 中设置页面范围?