前提・実現したいこと
pythonの勉強をしているのですが、generatorの挙動でわからない部分があり、解説か、もしくは参考になりそうなサイトを教えていただけると嬉しいです。肝となるキーワードが何かわからず、自力で調べられずにおります。
実際のコード
def hoge1(): yield [1,2] yield [3,4] yield [5,6] def hoge2(): yield tuple([1,2]) yield tuple([3,4]) yield tuple([5,6]) set(hoge1()) set(hoge2())
について、以下のような結果になる。
# きちんと動く set(hoge2()) # ({(1, 2), (3, 4), (5, 6)}) set((tuple([1,2]), tuple([3,4]), tuple([5,6]))) set([1,2,3,4,5,6]) # エラーが出る set(hoge1()) # TypeError: unhashable type: 'list' set([[1,2,3,4,5,6]]) # TypeError: unhashable type: 'list'
hoge1()とhoge2()のtypeはそれぞれ<class 'generator'>で同じでした。
二次元構造のlistだとsetできていないようなのですが、なぜ出来ないのか、お詳しい方ご教示いただけますと嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。