如果我給出了一個列表,其中包含一些列表,並且我希望每次出現值或字符串的位置,那麼給定以下代碼我該怎麼做?在列表列表中打印Value的位置Python
testlist = [[1, 2, 3],[ 5, 3, 1],[ 2, 1, 6]]
對於i在[I爲I,X在如果枚舉(testlist)x == 1]: 打印我
我認爲這將打印出
[0][0]
[2][1]
我不只是想要說:
打印testlist [0] [0]
會如何實現這一目標?
如果我給出了一個列表,其中包含一些列表,並且我希望每次出現值或字符串的位置,那麼給定以下代碼我該怎麼做?在列表列表中打印Value的位置Python
testlist = [[1, 2, 3],[ 5, 3, 1],[ 2, 1, 6]]
對於i在[I爲I,X在如果枚舉(testlist)x == 1]: 打印我
我認爲這將打印出
[0][0]
[2][1]
我不只是想要說:
打印testlist [0] [0]
會如何實現這一目標?
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]
啊我看到了。但是沒有更短的代碼? –
@RossJohnson:查看編輯 – inspectorG4dget
謝謝!我想提取列表中的值的位置不會像打印測試列表[0] [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
怎麼樣'[1] [ 2]'? – inspectorG4dget
我知道我可以簡單地說print testlist [1] [2]。我講的是:如果測試列表的結構可以改變。然後打印測試列表[1] [2]將無效 –