|  | 
 
 发表于 2024-9-28 13:47:35
|
显示全部楼层 
| 
 鱼油你好!
 
 在Python中,列表的下标确实是从0开始的。然而,你在循环中已经通过`for each in range(length)`访问了每一个下标值,所以`each`本身就是一个从0到`length-1`的索引值。举个例子:
 
 
 复制代码nums = [0, 1, 2, 1, 3]  # 示例列表
count = nums.count(1)  # 统计1的个数
length = len(nums)  # 获取列表长度
for each in range(length):
    if nums[each] == 1:  # 检查索引each位置的值是否为1
        count -= 1
    if count == 0:  # 当count为0时,即最后一个1
        print(each)  # 输出索引
        break
 解释:
 1. `for each in range(length)`生成的`each`是从0到`length-1`的值,所以你不需要再减1。
 2. `nums[each]`访问的是索引位置的具体元素。
 3. 当找到最后一个1时,`count`为0,这时`each`就是你要输出的下标。
 
 再举一个更清楚的例子:
 
 复制代码nums = [10, 20, 30, 1, 50, 1, 70]
# 这个列表的下标从0到6
# 你想找最后一个1,也就是下标为5的元素
# 遍历的时候,分别是 nums[0], nums[1], ..., nums[6]
count = nums.count(1)
length = len(nums)
for each in range(length):
    if nums[each] == 1:
        count -= 1
    
    if count == 0:
        print(each)  # 打印5,就是你想要的最后一个1的位置
        break
 这样你就能清楚为什么不需要再`each`减1了。希望对你有帮助!如果还有疑问,欢迎继续提问哦~
 
 以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
 | 
 |