使用 python 在 2D 列表中搜索以查找 x,y 位置

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。有什么可以优化搜索的吗?

Tim*_*ker 5

你不需要定义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)


Paw*_*ech 1

使用列表.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)