ran*_*ger 5 python arrays search list python-2.7
我有二维列表,我需要搜索元素的索引。由于我是编程初学者,我使用了以下函数:
def in_list(c):
for i in xrange(0,no_classes):
if c in classes[i]:
return i;
return -1
Run Code Online (Sandbox Code Playgroud)
这里的classes是一个二维列表,no_classes表示类的数量,即列表的第一维。当c不在数组中时返回-1。有什么可以优化搜索的吗?
你不需要定义no_classes自己。使用enumerate():
def in_list(c, classes):
for i, sublist in enumerate(classes):
if c in sublist:
return i
return -1
Run Code Online (Sandbox Code Playgroud)
使用列表.index(item)
a = [[1,2],[3,4,5]]
def in_list(item,L):
for i in L:
if item in i:
return L.index(i)
return -1
print in_list(3,a)
# prints 1
Run Code Online (Sandbox Code Playgroud)