如何从python中的嵌套列表中获取元素的位置

问题描述

如果我有一个看起来像这样的列表

list = [[1,2,3],[4,5,'X'],[7,8,'X']] 

如何获得X的位置,例如(i,j)?

解决方法

list是python关键字,因此最好使用其他名称。要访问列表元素,可以使用以下语法:listname[indexNumber]。请注意,索引从0开始。因此,要访问嵌套循环中第二个列表中的X,您需要首先访问第二个列表;像这样secondList = list[1]。然后,您将获得第二个索引位置中的X。 x = secondList[2]。您也可以在同一行中执行此操作:print(list[1][2])

,

您可以遍历“外部”列表,并在内部列表上使用index

def find(matrix,item):
    for i in range(len(matrix)):
        try: 
            j = matrix[i].index(item)
            return (i,j)
        except ValueError:
            pass
    raise ValueError # If item isn't found
,

您可以通过列表切片来做到这一点。

l = [[1,2,3],[4,5,'X'],[7,8,'X']]

print(l[0][0],l[1][2],l[2][0])

print(l[1][2])
 
# [0][0] == first list in list and first item in the first list
# [1][2] == second list and third item in the second list
# [2][0] == third list and first item in that list

输出

1 X 7

X

伟大的python列表切片tuto here

,

尝试一下

list1 = [[1,'X']] 


print(list1[1][2])
print(list1[2][2])

如果您不知道每次“ X”在哪里:

test_list = [[1,'X']] 

x = None
y = None

for separate_list in test_list:
    for var in separate_list:
        if var == 'X':
            if x == None:
                x = var
            elif y == None:
                y = var
            
pos = (x,y)

print(pos)