python - 获取最后一个索引,最好使用 len(list)-1 还是使用自己的变量?

标签 python

在我下面的代码中,使用 i = len(scheduled_meetings)-1 还是 i=0/i+=1 方法更好?我知道 len() 的成本是 O(1) 并且它可能更清楚这是怎么回事,但是它是为 sorted_meetings 中的每个 m 计算的。 i=0 设置一次,然后仅在列表中附加内容时才递增。甚至会有区别吗?这两种方法都适用于我的测试用例,只是想获得一些关于哪种方法更好的反馈。

import operator

def answer(meetings):
    # sort by earliest end time
    sorted_meetings = sorted(meetings, key=operator.itemgetter(1))
    # always select the earilest end time
    scheduled_meetings = [sorted_meetings[0]]
    i = 0 #METHOD B
    for m in sorted_meetings:
        i = len(scheduled_meetings) - 1 #METHOD A
        if m[0] >= scheduled_meetings[i][1] or m[1] <= scheduled_meetings[i][0]:
            scheduled_meetings.append(m)
            i += 1 #METHOD B

    return len(scheduled_meetings)

最佳答案

这些都不用。请改用 your_list[-1]。它的代码更少,并且不需要像 i 这样的其他变量。

-1 表示从右边开始的第一个元素,这显然是列表的最后一个元素。

参见示例 3.7 here获取更多关于负面 list 指标的信息。

关于python - 获取最后一个索引,最好使用 len(list)-1 还是使用自己的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36340008/

相关文章:

python - 唯一的单词作为每行一个单词保存到文本文件中

python - 加载由tensorflow训练的Keras模型时出错

python - 如何将数据输入网页以使用 Python 抓取结果输出?

python - 带有 GPU 的 Theano。在上下文中使用 cuDNN 版本 5110 无

python - 如何制作对角矩阵的掩码,但从第二列开始?

python - Python中基于FFT的二维卷积和相关性

python - 有没有一种方法可以在不使用循环的情况下获取列表的每个元素?

python - 如何使用另一个命名元组列表附加到列表?

python - 在不改变原始轴大小的情况下制作分隔线?

python - 查找以字母 "CU"开头的所有字符串并返回完整字符串