2017-09-28 7 views
0

リストのリスト['"fo"', '"ba"', '1','2','ect.','"fo"', '"ba"','ect.','57','"trip"']については、 '"fo"'、 '"ba"'が一緒にリストに表示されているときに '' fo ''のすべてのインデックスを取得する最もクリーンな方法は何ですか? Pythonで?にクリーンな方法を何リスト["foo", "bar", "baz"]、リスト「バー」の項目についてMrWonderful によって21:30 21:03と編集7月28日に12月30'14答え1つの項目に編集したものに類似'' ''、 '' ba ''が一緒に表示されるときに、すべてのindicesrを取得する方法。 Pythonで?

、 Pythonでそのインデックス(1)を取得しますか?

答えて

0

あなたは、すぐに'"ba"'続い'"fo"'ため

import itertools 

l = ['"fo"', '"ba"', '1','2','ect.','"fo"', '"ba"','ect.','57','"trip"'] 
print([i for i, x in enumerate(zip(l, itertools.islice(l, 1, None))) if x == ('"fo"', '"ba"')]) 
+0

ok-これは私が今やりたいと思うものに完璧に見えます。それは私にそれがすべきものである80以上の指標のリストを与えました。私はitertoolsとランダムで他のモジュールを見つける方法と、それらを使う方法を学ぶ必要があります。再度、感謝します。 –

0

これはそれを行う必要があります。

for one_list in list_of_lists: 
    if ("fo" in one_list) and ("ba" in one_list): 
     return indices = [i for i, x in enumerate(one_list) if x == "fo"] 
+0

私は全く新しいです。これは私が試みてきたものです。私は何かが1リストのインデックスを与えることがわかった、そして私はそれを働かせた。今私は2つのリストが一緒に現れるインスタンスを検索したい。これは私が試みていることです。 –

+0

DEF指数(L、ヴァル): "" "" RETVAL = [] 最後= 0 ヴァルながらLにおける[最後:]: "常にthe_listにヴァルのインデックスを含むリストを返す" I = Lは[last:]。index(val)#リスト内の最後の項目を検索する もしl [i + 1] == dateの場合: print(l [last]) print(l [last +1]) retval.append (前回+ i)を 最後+ = I + 1 ELIFさl [I + 1] =日付:! 最後の+ =私は返す RETVAL –

+0

リットル= no_spaces Q =( ' "EMD"') 日付=( '"20170820"') print(indices(l、q))私はkogitoの解決策を試して、 "c:\ code \ testing.py"ファイルを取得し続けました。 return indices = [私はx、列挙する(one_list) if x == no_spaces [0]] ^ SyntaxError:無効な構文Patrick'sとWindmillの投稿をお試しいただき、ありがとうございます。 –

0

のようなものを探しているならあなたはこれを試みることができます!リストを一度反復し、私たちのインデックスと次のものがあなたの望むものと一致するかどうかを調べます。そうであれば、それをリストに追加します。また、indexOutOfBounds例外を避けるためにリストの最後のインデックスにないことを確認します。

results = [] 
for i in range(0, len(lst)): 
    if i < len(lst)-1 and lst[i] == '"fo"' and lst[i+1] == '"ba"': 
     results.append(i) 
return results 

この例は、リストのリストではなく1つのリストのように見えることに注意してください。リストのリストに適用するには、各サブリストを使用してforループの繰り返しを追加することができます。

0

これは私が終わったものです。私はPatrick Haughの答えを取り入れました。

import itertools   # C-D create list of indices  
r_va=('"EMD"', '"20170820"') 
L = ([i for i, x in enumerate(zip(l, itertools.islice(l, 1, None))) if \ 
x == (r_va)]) 
e =(len(l)) 
L.append(e) # adds end length of no_spaces L is list of indexes of l 
関連する問題