So erhalten Sie die Position eines Elements aus einer verschachtelten Liste in Python [Duplikat]
Wenn ich eine Liste habe, die so aussieht
list = [[1,2,3], [4,5,'X'], [7,8,'X']]
Wie kann ich die Position von X erhalten, dh wie (i, j)?
Antworten
listist ein Python-Schlüsselwort, daher ist es wahrscheinlich besser, einen anderen Namen zu verwenden. Um auf ein Listenelement zuzugreifen, können Sie folgende Syntax verwenden : listname[indexNumber]. Beachten Sie, dass der Index bei 0 beginnt. Um also auf das X in der zweiten Liste in der verschachtelten Schleife zuzugreifen, müssen Sie zuerst auf die zweite Liste zugreifen. so secondList = list[1]. Dann können Sie X erhalten, das sich an der zweiten Indexposition befindet. x = secondList[2]. Sie können dies auch in derselben Zeile tun:print(list[1][2])
Sie können die "äußere" Liste durchlaufen und indexfür die innere Liste verwenden:
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
Sie können dies mit Listen-Slicing tun.
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
Ausgabe
1 X 7
X
tolles Python List Slicing Tuto hier
Versuche dies
list1 = [[1,2,3], [4,5,'X'], [7,8,'X']]
print(list1[1][2])
print(list1[2][2])
Wenn Sie nicht wissen, wo jedes Mal 'X' sein wird:
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)