YJMYJM 发表于 2022-2-23 11:29:35

问题求助 课后题

>>> nums =
>>> nums_copy = nums.copy()
>>> nums_copy.reverse()
>>> len(nums_copy) - 1 - nums_copy.index(1)
通过拷贝获取一个列表的副本(题目要求不改变原列表),然后将该副本原地翻转,再通过 index() 方法获取翻转后指定元素的下标,最后,使用(列表的长度 - 1 - 翻转后的下标)得到最终的结果。

这里为什么是 列表的长度 - 1 - 翻转后的下标呢,有些不太理解

isdkz 发表于 2022-2-23 11:50:09

列表的长度 - 1 - 翻转后的下标 得到的是翻转前的下标,

首先 长度需要减1是因为列表的下标是从0开始的,而列表的长度是从1开始算的

然后 减去翻转后的下标得到的是翻转后该元素与列表尾部的距离,
也就是该元素在翻转前与列表首部的距离,即该元素翻转前的下标

镜花丿水月 发表于 2022-2-23 11:58:45

你把题目也贴出来吧。。。。课后题太多了不知道你说的哪一题

YJMYJM 发表于 2022-2-23 21:32:22

镜花丿水月 发表于 2022-2-23 11:58
你把题目也贴出来吧。。。。课后题太多了不知道你说的哪一题

好的好的
题目是:列表的 index() 方法可以找到第一个匹配元素的下标,那么你有没有办法在不改变原列表的情况下,找到最后一个匹配元素的下标呢?

YJMYJM 发表于 2022-2-23 21:46:58

谢谢你,我懂啦
页: [1]
查看完整版本: 问题求助 课后题