访问矩阵/列表的列表中的索引或行



不使用numpy,我的问题与Python中的for循环有关,因为它没有for i=0, i++ ...

for i in list

我需要

for i in list 
# print(i.index)
# i.index being 0 at the first element of the list and
# ordered to len(list)-1 at the last element 

我错过了一些东西:

mat=[[1,0,1],
[1,1,1],
[1,0,1]]

dict1= []
dict2= []
n=len(mat[0])
for row in mat :
for j in range(n):           
if row[j]==0: 
dict1.append(mat.index(row))
dict2.append(j)
print(dict1)
print(dict2)

输出应该是[0,2]和[1,1],但我得到的却是

[0,0] 
[0,1]

我们如何解释这个?

另一种可能是for i,v in enumerate(my_list): print(i, v)i的值由0变为len(my_list) - 1。函数enumerate有关键字参数start,允许指定i从哪里开始(如上所述,默认为0)。

使用.index()

l=[1,2,3]
for i in l:
print(i,l.index(i))
1 0
2 1
3 2

使用.index()是可以的,只要列表没有双条目,因为index返回条目第一次出现的索引。

for循环可以在一定范围内遍历索引i,如下所示:

l=[1,2,3,5,6,7,3,1,89,2,77]
for i in range(0,len(l)):
print(l[i], i)

最新更新