を使用して、私のPythonコードです:python、list compare、ValueError:複数の要素を持つ配列の真理値はあいまいです。ここでa.any()またはa.all()
def ava_check(nodes_group,child_list):
ava_list=nodes_group[:]
if nodes_group[1] in child_list:
return None
else:
for a in nodes_group:
if a in child_list:
ava_list.remove(a)
ava_list.remove(nodes_group[nodes_group.index(a)-1])
else:
pass
nodes_group
が[0.0, (0, 3), 0.0, (0, 2), 0.0, (1, 3)]
ようなリストです。 child_list
は[(0, 1)]
のようなリストです。
しかし、コードを実行すると、ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
というエラーが発生しています。if a in child_list:
です。私はここで何が問題か分かりません。私は検索しようとしましたが、彼らは何も言いませんでした。しかし、ここではnumpyは使用しませんでした.2つのinout引数はタプルのリストにすぎません。
この問題を解決できますか?
ありがとうございました。
更新:皆様のご協力ありがとうございます。リストnodes_group内のいくつかのデータ(タプルではない)はnumpy
配列からのものです。しかし、私は新しいリストにデータを保存します。そこで、type()を使用して新しいリストの要素のデータ型を調べましたが、型がnumpy.float64
であることがわかりました。だから私はint()
を使うだけで、リスト内の要素のタイプをnumpy.float64
からintに変更するループを書いています。だから問題は解決される。しかし、誰かがより良い解決法であるか、それとももっと無法な方法であるかは誰にでも分かりますか?ありがとう。
上記のコードはbugなしでrepl.itで実行できます。これは私が理解していない別のものです。 –
あなたのコードに 'a in nodes_group'はありません。正しい行で更新してください。 –
@AkshatMahajanありがとうございます。私はすでにタイプミスを変更しました。 –