以前は、要素がネストされたリストに存在するかどうかを調べるための質問があり、以下のリンクでその応答を得ました。多次元リスト内の要素を検索し、サブリスト番号を返すか?
Search of Element inside a multi-dimensional List Not Working. Any Clue
機能が同様にサブリストは要素が存在していると言う値を出すことができれば不思議でしたか?下記の要素が終了する場合やないと言うのコードです:
def in_nested_list(item, x):
if not isinstance(x, list):
return x == item
else:
return any(in_nested_list(item, ix) for ix in x)
list1 = []
list1.append([['red'], ['blue'], ['bla']])
print list1
list1.append([['hello'], ['blue'], ['bla']])
print list1
if in_nested_list('hello', list1):
print "Found Hello"
else:
print "Not Found Hello"
は私が特定の上に基づいて、さらにデータを追加できるように、また、サブリストは、要素の終了をしていると言ってその機能を変更することができますどのように思っていましたサブリスト。
a。上の例から、if条件はHelloが見つかったことを表示します。しかし、それはまた、上記の場合にsublist_no、すなわちサブリスト1のような出力変数を返すか、または保存すると、さらに変数を追加できるようになります。
例:出力がTRUEになり、サブリスト番号も1になります。そのため、関数呼び出し後に次の処理を実行できます。私は要素の赤を検索する場合、私は第一のリストにいくつかのより多くの変数を追加することができるように
list1[sublist_no].append(['Bug'])
が言うには、出力は、0としてsublist_noでTRUEになります。 list1[sublist_no].append('[Rasberry]') # i.e. onto the first sub-list.
上記クエリのヒントはありますか?親切にあなたの元の関数は、リストのちょうどリストよりもはるかに複雑なネストされた構造を扱うことができますので...あなたのコメントに
ご回答Schwobasegglためのおかげで..私は例を実行しようとしたが、何とかそのループエラーに入る: ファイル「./listeg_sch.py」、8行目を、in_nested_list X = in_nested_list(アイテム、IX) ファイル」に./listeg_sch.py "、in_nested_listの第4行 if item == x: RuntimeError:最大再帰深度がcmpを超えました 私はちょっと答えました。 – Vimo
私の答えは少し編集しました。しかし、私は参照してください。ストリング自体は反復可能ですが、私はintでテストしました。いくつかの微調整が行います。私に分かります;) – schwobaseggl
これでうまくいくはずです! – schwobaseggl