Pythonのお勉強 Part21

このエントリーをはてなブックマークに追加
341デフォルトの名無しさん
すみませんが、質問させてください。
pythonでは多次元配列を扱うときはリストのリストを使いますよね。
[ [1,0,2],[-1,2,3],[5,7,2] ]こんな風に。
リストのリストで、ある要素が何行目に入っているのか調べるにはどうしたらよいでしょうか?

例えば上の場合は「5」を入力すると「3」を返すような。
要素は数字だけに限らず文字列の場合もあります。
どなたか上手い方法を教えてください。お願いします。
342デフォルトの名無しさん:2007/11/09(金) 14:32:22
>>> lst = [ [1,0,2],[-1,2,3],[5,7,2] ]
>>> (lambda x, lst: [x in s for s in lst])(5, lst).index(True) + 1
3

冗談だ。
343デフォルトの名無しさん:2007/11/09(金) 14:57:35
>>341

a=[ [1,0,2],[-1,2,3],[5,7,2] ]

普通(.は半スペね)
for n,l in enumerate(a):
.if 5 in l:
..print n+1

リスト内包大好き
sum([1 for l in a if not 5 in l])+1
344デフォルトの名無しさん:2007/11/09(金) 14:57:42
調べ方がまるでわからないというならご参考に

a=[[1,0,2],[-1,2,3],[5,7,2]]
for x,y in enumerate(a):
    if 5 in y:
        print x+1
345344:2007/11/09(金) 14:59:03
いやん、超かぶった・・・