Negative indexing in Python
本问题已经有最佳答案,请猛点这里访问。
我有一张单子上的记录
1 | >>> bob =['bob smith',42,30000,'software'] |
我想从这张唱片里找出史密斯的姓
我使用以下命令:
1 | >>> bob[0].split()[1] |
它提供给我"史密斯"
但我所指的书使用以下命令:
1 | >>> bob[0].split()[-1] |
它也给了我同样的结果"史密斯"
为什么索引[1]和[-1]提供相同的结果?
python列表可以使用负索引进行"反向索引"。
你的书建议使用
这是你的意见
1 2 | In [73]: bob Out[73]: ['bob smith', 42, 30000, 'software'] |
这是鲍勃给你的
1 2 | In [74]: bob[0] Out[74]: 'bob smith' |
如您所见,bob[0]只有两个元素,所以1给您第二个元素,-1给您最后一个相同的元素
因为在这种情况下,您要拆分的列表是
由于列表的大小为2,第二个(索引
一般来说,如果你有一个清单
正索引从列表开始计数,负索引从列表结束计数。
即:
1 2 3 4 | bob[0].split()[0] == 'bob' bob[0].split()[1] == 'smith' bob[0].split()[-1] == 'smith' bob[0].split()[-2] == 'bob' |
现在假设你有一个中间名:
1 | jane =['jane elizabeth smith', 42, 30000, 'software'] |
说了这一切,
- 不要假定名称由两个组件组成
- 不要假定名称的形式为
- 不要假定名字是一个词
- 不要假定姓氏是一个词
- 不要想当然!!!!
如果你想更全面地了解一些你可能会犯错误的事情,那就看看程序员对名字的错误吧。