使用'in'关键字我可以找到一个元素是否在数组中:
a=[1,2,3]
if 1 in a:
print "1 present in a"
有没有办法返回'in'找到那个元素的索引?
一维列表:
a=[1,2,3]
def indd(val):
try:
ind=a.index(val)
return ind,val
except:
return 'not found'
print(indd(1))
print(indd(5))
(0,1)
not found
对于 3-d 列表,函数 function 将返回 x,y,z 的元组,如果数字在 3d 列表中重复,则它将返回最低索引:
def ind_3d(lis,val):
ind=[(j,i,k) for j,x in enumerate(lis) for i,y in enumerate(x) for k,z in enumerate(y) if z==val]
if len(ind)==0:
return 'not found'
else:
return ind[0]
a=[[[1,2,3],[4,5,6],[7,8,9]],[[11,12,13],[14,15,16],[17,18,19]]]
print(ind_3d(a,11))
print(ind_3d(a,5))
print(ind_3d(a,25))
输出:
(1, 0, 0)
(0, 1, 1)
not found
如果您确定它存在,则使用它a.index(1)
来获取列表中的位置。1
否则使用 try/catch 块。
此外,它们在 Python 中被称为“列表”:) 术语越准确,以后就越容易跟踪它们的实现方式以及它们支持的功能。
编辑:对于多维列表(即二维列表中的列表),您必须遍历顶层,维数n-1
在哪里n
。对于 2-D,假设您正在搜索1
,这样的东西会起作用:
for idx, val in enumerate(a):
if 1 in val:
return idx, val.index(1)