gpt4 book ai didi

python /鼠尾草 : can lists start at index 1?

转载 作者:太空狗 更新时间:2023-10-29 20:20:42 24 4
gpt4 key购买 nike

我从一个所谓的严肃来源下载了一个 sage 脚本。它在我的电脑上不起作用,快速调试表明问题来自于这样一个事实,即在某些时候,作者所做的就像一个 n 元素列表从 1 到 n 编号(而“正常”编号在 Python 中,(因此)sage 是 0..n-1)。

我错过了什么?是否有一个隐藏在某处的全局变量改变了这个约定,比如在 APL 中?

感谢您的帮助(我希望我的问题很清楚,尽管我对英语和 CSish 都不太了解...)

最佳答案

Python(因此也是 sage)列表总是从 0 开始编号,并且没有办法改变它。

查看 CPython 的源代码,在 http://hg.python.org/cpython/file/70274d53c1dd/Objects/listobject.c 中第 449 行:

static PyObject *
list_item(PyListObject *a, Py_ssize_t i)
{
if (i < 0 || i >= Py_SIZE(a)) {
if (indexerr == NULL) {
indexerr = PyString_FromString(
"list index out of range");
if (indexerr == NULL)
return NULL;
}
PyErr_SetObject(PyExc_IndexError, indexerr);
return NULL;
}
Py_INCREF(a->ob_item[i]);
return a->ob_item[i];
}

项查找直接委托(delegate)给底层 C 数组,并且 C arrays are always zero-based .所以 Python 列表也总是从零开始。

关于 python /鼠尾草 : can lists start at index 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com