Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python中的嵌套列表中获取元素的位置_Python_Nested Lists - Fatal编程技术网

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

如何从python中的嵌套列表中获取元素的位置,python,nested-lists,Python,Nested Lists,如果我有一个这样的列表 list = [[1,2,3], [4,5,'X'], [7,8,'X']] 我怎样才能得到X的位置,比如(I,j)?试试这个 list1 = [[1,2,3], [4,5,'X'], [7,8,'X']] print(list1[1][2]) print(list1[2][2]) 如果您不知道每次“X”的位置: test_list = [[1,2,3], [4,5,'X'], [7,8,'X']] x = None y = None for separ

如果我有一个这样的列表

list = [[1,2,3], [4,5,'X'], [7,8,'X']] 
我怎样才能得到X的位置,比如(I,j)?

试试这个

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


print(list1[1][2])
print(list1[2][2])
如果您不知道每次“X”的位置:

test_list = [[1,2,3], [4,5,'X'], [7,8,'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)

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

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
输出


伟大的python列表切片图图

如果列表更改嵌套for循环会解决这个问题,我只是认为这是一个确定的问题position@AstroLion我试过这个。但是它给出了这个输出([4,5,X],3)@PrathamDave你确定你复制的是对的吗?我得到('X','X')作为输出。我想OP是在问如何在I,j符号中得到'X'的“地址”。在本例中,有两个“X”实例,因此我们需要考虑返回任意数量的索引-tuples@Georgy谢谢,我找到了解决办法。使用枚举帮助
1 X 7

X