不使用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)