python - 如何提高比较列表元素的效率?

标签 python list data-structures constraints time-complexity

每当我在在线平台上编码并且以某种方式必须将列表的元素相互比较时,我都会使用以下代码,根据我的说法,这是最有效的。这是我练习的最后一个代码。目的是找到两个相同元素之间的最大索引。

max=0
for i in range(len(mylist)):
    if max==(len(mylist)-1):
        break
    for j in range(i + 1, len(mylist)):
        if mylist[i] == mylist[j]:
            if max>(abs(i-j)):
                max=abs(i-j)

它运行了大部分测试用例,但有时会显示“超出时间限制”。我知道这与约束和时间复杂度有关,但我仍然找不到更好的方法。如果有人能帮助我,那就太好了。

最佳答案

在 Python 中使用基于 C 的函数更容易。另外,不要将变量命名为 list 之类的 Python 类型。

x = [item for i, item in enumerate(l) if item in l[i+1:]]
# do something with list of values

关于python - 如何提高比较列表元素的效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58174510/

相关文章:

java - 按索引获取项目

java - 使用递归查找堆栈中的最小值

python - parse_edgelist 与加权网络重复? python 网络x

r - 成对组合向量的元素

python - 从列表中提取某些值

列表中第二大值的算法考试示例

c++ - 如何将连续输出存储为完整字符串?

python - 无法通过子进程调用从 The Silver Searcher 获取输出

python - 学校垄断作业的一部分不会输出任何内容(初学者,Python)

python - Pygame - 使用 Time 打印秒数