2

如何检查一个元素是否在列表中的另一个之前?

例如:

如何检查列表中 5 是否在 12 之前:

li = [1,2,3,7,4,5,10,8,9,12,11]

是否有一个内置的 Python 函数可以让我这样做?

4

4 回答 4

5

给你:

>>> li = [1,2,3,7,4,5,10,8,9,12,11]
>>> li.index(5) > li.index(12)    # 5 comes after 12
False
>>> li.index(5) < li.index(12)    # 5 comes before 12
True
>>>
>>> help(list.index)
Help on method_descriptor:

index(...)
    L.index(value, [start, [stop]]) -> integer -- return first index of value.
    Raises ValueError if the value is not present.

>>>
于 2013-10-29T21:45:01.407 回答
3
if li.index(5) < li.index(12):
   print "came before"
于 2013-10-29T21:45:10.763 回答
0

您可以使用list的内置index功能:

>>> l = [1,2,3,7,3,5,21,8,44,16,12]
>>> l.index(5) > l.index(12)
False
>>> l.index(5) < l.index(12)
True
>>>

index返回数字第一次出现的索引。如何工作的一个例子index

>>> t = (0,1,2,3,4,0,1,2)
>>> t.index(3)
3
>>> t.index(0)
0

注意这里有两个 0s。

于 2013-10-29T21:48:34.347 回答
-3

我不知道python,但编程语言中的数组和列表通常使用从零开始的索引来标识每个元素。您通常可以使用格式 li[index] = element 通过索引访问每个元素。例如:

let li = [1,2,3,7,4,5,10,8,9,12,11]

li[0] = 1;
li[1] = 2;
li[2] = 3;
li[3] = 7;
li[4] = 4;

等等。许多系统也会有一个 IndexOf() 方法,它允许您使用类似于 li.IndexOf(element) 的格式来确定元素的索引。此功能可以在您的示例中使用,例如:

Boolean Is_5_B4_12 = li.IndexOf(5) < li.IndexOf(12);

如果 python 没有这样的功能,您可以通过使用循环和增量器轻松地自己创建一个。与此类似的东西会起作用:

Function IndexOf(integer element)
    integer index = 0;
    Do While index < len(li) //len() is a function that specifies the number of elements in the list
        if li[index] == element then return index;
        index = index + 1;
    Loop
End Function

我希望这回答了你的问题!问候 - 以色列松懈

于 2013-10-29T21:58:05.507 回答