質問: リスト内に同じリストが存在しているかどうか確認するプログラムを作成したいです。 ``` #重複確認の有無を確認したいとすると def kakunin(n): return len(n)==len(set(n)) a=list([1,2,3,4,5]) #aの中に重複がないか確認 kakunin(a) #True(重複なしの意) c=list([[0,0,1],[1,1,1],[2,2,2],[0,0,0]]) b=list([0,0,1]) #cのlistの中にbがあるか確認したい場合に上記の方法でc.append(b)で上記kakuninを動かすとunhashable type: 'list'でリストでは使用ない ``` 上記でaのリスト or array内にbのlistが存在しているか確認したいのですが、 aの中にbを追加して、重複確認で定義したプログラムにすると unhashable type: 'list'のエラーでリストでは上記の重複しているかどうか 確認できないでおります。 aのようなlist in listの中に構造の中にbのlistが存在しているか確認したい場合別の手法で方法がありますでしょうか?
回答: 「aの中にbがあるか」確認したいのなら、重複チェックするまでもなくin演算子でできます。 ``` >>> a = [[0,0,1],[1,1,1],[2,2,2],[0,0,0]] >>> b = [0,0,1] >>> b in a True ``` 質問の本筋とは関係ないですが、質問文のコードに関してコメント。 * そもそも元のaに重複があったときどうするつもりだったのですか。 * `a=list([1,2,3,4,5])`のような記述ですが、`[1,2,3,4,5]`でlistを表す表記なので外側の`list()`は不要です。 * `a=([0,0,1],[1,1,1],[2,2,2],[0,0,0])`はlistを要素に持つtupleになる。`a.append(b)`は動かないはずなので、質問文のコードは何か間違っています。正確にコピペしてください。