Python 在带有';在';关键字并返回该元素

Python 在带有';在';关键字并返回该元素,python,arrays,Python,Arrays,使用“in”关键字,我可以找到元素是否在数组中: a=[1,2,3] if 1 in a: print "1 present in a" 是否有方法返回“in”找到该元素的位置的索引?使用a.index(1)获取列表中1的位置,如果您确定它存在的话。否则,使用try/catch块 此外,它们在Python中称为“列表:)术语越准确,以后就越容易跟踪它们的实现方式以及它们支持的函数 编辑:对于多维列表(即二维情况下的列表列表),您必须迭代顶部的n-1级别,其中n是维度。对于2-D,假设您

使用“in”关键字,我可以找到元素是否在数组中:

a=[1,2,3]
if 1 in a:
    print "1 present in a"
是否有方法返回“in”找到该元素的位置的索引?

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

1-d列表:

  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
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
对于三维列表,函数将返回x、y、z的元组,如果数字在三维列表中重复,则它将返回最低索引:

  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
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=[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
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

1-d列表:

  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
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
对于三维列表,函数将返回x、y、z的元组,如果数字在三维列表中重复,则它将返回最低索引:

  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
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=[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
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

是的,谢谢你指出这一点。我将编辑并去掉3d部分:谢谢你指出这一点。我将编辑并去掉3d部分:P这不是真正的3d阵列。这是一个包含3个元素的1d数组。@Falmari是对的-你是指包含3个元素的列表吗?不,我不是指包含3个元素的列表。我想问一个关于3d列表的问题,但我想我在写这个问题时决定,我所能学到的关于1d列表的知识可以很容易地应用到3d列表中。我在那里的编辑中修改了标题,并将单词数组更改为标准python术语(列表,而不是数组)。这是一个包含3个元素的1d数组。@Falmari是对的-你是指包含3个元素的列表吗?不,我不是指包含3个元素的列表。我想问一个关于3d列表的问题,但我想我在写这个问题时决定,我所能学到的关于1d列表的知识可以很容易地应用到3d列表中。我在那里的编辑中修改了标题,并将单词数组更改为标准python术语(列表,而不是数组)。