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

时间:2016-03-31 17:33:11

标签: 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)

1 个答案:

答案 0 :(得分:8)

不使用这些。请改用your_list[-1]。代码较少,不需要i等其他变量。

-1表示右侧中的第一个元素,它显然是列表的最后一个元素。

有关否定列表索引的详细信息,请参阅示例3.7 here