2016-09-30 7 views
-1

私はr個の要素のr個のリストを持っています。 のはr=3が、私はこのようなものがあるとしましょう:このリスト内の 『i』の要素のインデックスを取得するには、「「list.index(item) 『』」」メソッドを使用して、テーブル(リストのリスト)内の一意の文字のインデックスを取得しますか?

list=[["o","o","o"],["o","i","o"],["o","o","o"]] 

は、私は希望を。その結果、私はx番目のサブリストの場合はx(y)、x番目のサブリストのy番目の要素の場合はyとなるはずです(この場合は(1,1))。

私のプログラム(ゲーム)のコードを後で必要に応じて参加できます。

+0

ますリストのサイズは常に長さrですか? – PrestonM

答えて

1

あなたは可能性がありtry行によってインデックス行を見つけるために:たとえば

def findI(rows): 
    for i,row in enumerate(rows): 
     try: 
      return (i,row.index("i")) 
     except ValueError: 
      pass 

を:

>>> x =[["o","o","o"],["o","i","o"],["o","o","o"]] 
>>> findI(x) 
(1, 1) 
+0

私はついにトリックもやってきましたが、あなたのコードよりも多くのコード行が必要です。あなたはきれいに見えます。ありがとう!ここ – Chihab

+0

は、私が得たものである: DEF indxi()は: ________if "i" の中のx:#Recupererはcoordonneesデ "i" は範囲内のI ____for(LEN(X))をplace_objects() ____のx = place_objects() をDANS [i]: ____________ a = i ____o = x [a] .index( "i") ____return(a、o) – Chihab

+0

ひどいコメントを申し訳ありません。コメントを正しく挿入する方法はまだわかりません" – Chihab

0

それとも、この試すことができますので、それ[0]であることを

list=[["o","o","o"],["o","i","o"],["o","o","o"]] 
f = [sublist for sublist in list if element in sublist][0] 
print(list.index(f), f.index(element)) 

をフィルタのようなものなので、[[a,b]]のようなものが返されます。しかし、私は[a, b]が必要です。それが役に立てば幸い。この問題は、要素がリストにないときに失敗することです。

2

ネストされたリスト内のすべての値のインデックスを見つけた解決策を探している場合は、ここで関数はあなたのためである:

def find_indexes(needle, lst): 
    return [(lst_idx, sub_idx) for lst_idx, sublst in enumerate(lst) 
           for sub_idx, i in enumerate(sublst) 
            if i == needle] 

次のようにあなたが使用することができます。

>>> lst = [["o","a","o"],["a","i","o"],["o","o","a"]] 
>>> find_indexes('a', lst) 
[(0, 1), (1, 0), (2, 2)] 
関連する問題