2017-11-21 19 views
-1

問題が発生しました。私は上記のサンプルのようなリストを持っています:Pythonが行の位置を行列に見つける

list = [[{'bu':'01-DAM-XNXX'}, 45, 60], [{'bu':'02-TAC-MWKKK'}, 80, 120], ...] 

と私は、辞書の 'bu'キーの値に応じて行の番号を見つける必要があります。この場合、'01 -DAM-XNXXの場合は1、'02 -TAC-MWKKKの場合は2となります。

ありがとうございます!

+0

を?リストのn番目の要素は行nにありますか?または、行のdictの値の最初の2文字ですか? – mrCarnivore

+0

私の場合、行はリストの各要素です。たとえば、row1:[{'bu': '01-DAM-XNXX'}、45,60] – Madmartigan

+0

'01-DAM-XNXX 'の先頭にある'01'は、先頭の数字? – mrCarnivore

答えて

0

私はそれを持っていると思う:

element = '01-DAM-XNXX' 
position = raw_list.index([row for row in raw_list if row[0]['bu'] == element][0]) 
+0

私は、Pythonで変数 'list'の名前を付けないことを強くお勧めします。これはあらゆる種類の問題につながる可能性があります! – mrCarnivore

+0

ええ、私は知っています。編集されました。ありがとう。 – Madmartigan

0

Pythonの3

search_value = '02-TAC-MWKKK' 
ind = (ind for ind, val in enumerate(list) if val[0]['bu'] == search_value).__next__() 

のPython 2

search_value = '02-TAC-MWKKK' 
ind = (ind for ind, val in enumerate(list) if val[0]['bu'] == search_value).next() 

また、@mrCarnivoreで述べたように、あなたの変数に名前を付けないでくださいlist

0

あなたは簡単な関数を使用できますので、あなたが行で何を意味するの

def searchList(term,searchlist): 
    for row in range(len(searchlist)): 
     if term in searchlist[row][0]['bu']: 
      return row