查找列表元素是否出现2次?

时间:2013-10-28 00:50:04

标签: python list

我正在帮助完成这项任务。这是一个简单的问题,但它要求使用index()函数和切片函数。我对如何做到这一点感到茫然。我不确定为什么要做这样的事情需要这两个功能。话虽如此,是否有人可以分享一些如何做到这一点的知识?

2 个答案:

答案 0 :(得分:1)

>>> L = [1, 2, 3, 4, 6, 7, 8, 9, 5, 5]
>>> any(item in L[L.index(item)+1:] for item in L)
True
>>> L = [1, 2, 3, 4, 6, 7, 8, 9, 5]
>>> any(item in L[L.index(item)+1:] for item in L)
False

如果您确实需要使用slice 功能而不仅仅是切片

>>> any(item in L[slice(L.index(item)+1, None)] for item in L)

答案 1 :(得分:0)

如果你必须使用index和切片,你可以写

def occurs_twice(lst, elem):
    try:
        i1 = lst.index(elem)
    except ValueError:
        return False

    try:
        i2 = lst[i1+1:].index(elem)
    except ValueError:
        return False

    return True

print occurs_twice([1, 2, 3, 4, 6, 7, 8, 9, 5, 5], 5)