Python中的负索引

MSB*_*MSB 0 python list

我在列表中有一条记录

>>> bob =['bob smith',42,30000,'software']
Run Code Online (Sandbox Code Playgroud)

我试图从这个记录中得到'史密斯'的姓氏

我使用以下命令:

>>> bob[0].split()[1]
Run Code Online (Sandbox Code Playgroud)

它为我提供'史密斯'

但我所指的那本书使用以下命令:

>>> bob[0].split()[-1]
Run Code Online (Sandbox Code Playgroud)

它也给了我同样的结果'史密斯'

为什么索引[1]和[-1]提供相同的结果?

ars*_*jii 5

Python列表可以使用负索引"反向索引".-1表示最后一个元素,-2表示倒数第二个,依此类推.恰好在长度为2的列表中,最后一个元素也是索引处的元素1.

你的书建议使用,-1因为从逻辑的角度来看它更合适.您不希望项目1本身是索引,而是列表的最后一个元素,即姓氏.例如,如果还包括中间名,该怎么办?然后使用索引1将无法工作而索引为-1将.