为啥调用 python 列表的 [-1] 会给出这个输出? [复制]

Posted

技术标签:

【中文标题】为啥调用 python 列表的 [-1] 会给出这个输出? [复制]【英文标题】:Why does calling [-1] of a python list give this output? [duplicate]为什么调用 python 列表的 [-1] 会给出这个输出? [复制] 【发布时间】:2020-01-13 23:35:29 【问题描述】:

这可能是一个理论问题,但请多多包涵。为什么这个 Python 代码会产生这个输出?

content = ['abc', 'def', 'ghi', 'jkl', '\n.']
print(content[-1])

输出是:


.

. 为什么会出现?为什么没有错误?

【问题讨论】:

【参考方案1】:

Python 列表可以用负数索引,-1 表示最后一个元素,-2 表示倒数第二个元素,依此类推。

特别是对于这个例子,content[-1] 指的是'\n.'。字符'\n' 是一个空白字符,它创建一个新行。因此,您的打印语句输出一个新行,后跟句点。

【讨论】:

是的,但我的列表中没有 . 项目。为什么是输出? 列表中的最后一项是'\n.',这是一个换行符后跟一个点。 尝试在您的打印语句之前添加一个 print("----")。您应该在 ---- 和点之间看到一个空行

以上是关于为啥调用 python 列表的 [-1] 会给出这个输出? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python append() 与列表上的 + 运算符,为啥这些会给出不同的结果?

为啥解包在 Python 中给出一个列表而不是一个元组?

为啥在测试数据上调用 transform() 会给出数据尚未拟合的错误?

为啥在模板中呈现时表单中的 NullBooleanField 会给出下拉列表?

为啥这两个指针减法会给出不同的结果?

为啥用 shuffle 调用 KFold 生成器会给出相同的索引?