如何检查元素是否在列表中的另一个元素之前?
例如:
如何在列表中检查5是否出现在12之前:
li = [1,2,3,7,4,5,10,8,9,12,11]
是否有内置的Python函数可以让我这样做?
答案 0 :(得分:4)
这里你去:
>>> 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.
>>>
答案 1 :(得分:2)
if li.index(5) < li.index(12):
print "came before"
答案 2 :(得分: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
请注意,此处有两个 0
。
答案 3 :(得分:-2)
我不知道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
我希望这能回答你的问题!问候 - yisrael lax