如何从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]
。然后你可以得到第二个索引位置的Xx=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