在列表Python列表中打印值的位置

时间:2015-10-18 22:40:31

标签: python list for-loop enumerate

如果给出一个列表,其中包含一些列表,并且我想要每次出现一个值或字符串的位置,那么在给定以下代码的情况下,我该怎么做呢:

testlist = [[1, 2, 3],[ 5, 3, 1],[ 2, 1, 6]]

我认为它会打印出来

[0][0]
[2][1]

我不只是想说:

  

打印测试列表[0] [0]

如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

In [121]: testlist = [[1, 2, 3],[ 5, 3, 1],[ 2, 1, 6]]

In [122]: for i,sub in enumerate(testlist):
   .....:     for j,num in enumerate(sub):
   .....:         if num==1: print("[{}][{}]".format(i,j))
   .....:         
[0][0]
[1][2]
[2][1]

如果你想要一个寻找任何通用值的函数:

def search(L, val):
    answer = []
    for i, sub in enumerate(L):
        for j,num in enumerate(sub):
            if num==val:
                answer.append([i,j])
    return answer

如果你想要一个单行:

val = 1
answer = [[i,j] for i,sub in enumerate(testlist) for j,num in enumerate(sub) if num==val]

答案 1 :(得分:0)

ll = [[1, 2, 3],[ 5, 3, 1],[ 2, 1, 6]]

for k, el in enumerate(ll):
    for i,j in enumerate(el):
        print("row {} column {} elemen {}".format(k, i, j))

row 0 column 0 elemen 1
row 0 column 1 elemen 2
row 0 column 2 elemen 3
row 1 column 0 elemen 5
row 1 column 1 elemen 3
row 1 column 2 elemen 1
row 2 column 0 elemen 2
row 2 column 1 elemen 1
row 2 column 2 elemen 6