Python2と3でrangeを使う時の違いと、TypeErrorの時

Pythonロゴ

Python2


    list = range(100)
    random.shuffle(list)

こんな感じで書いていたPython2スクリプトですが、

Python3ではこんなエラーが出てしまいました。

TypeError: 'range' object does not support item assignment

調べてみるとPython3のrangeが返すのはリストでは無いんだとか・・・
仕様が変わったみたいです。

こういう時は

list = list(range(100))

こんな感じにlist()でキャスト(?)すればいいらしいのですが僕の環境ではうまくいきませんでした。

TypeError: 'range' object is not callable

というエラーが出てしまいました。

これは変数名と関数名は同じにしてはいけないに書いてあるように、関数名と変数名を同じにしていた事によるエラーでした。

Python3


    _list = list(range(100))
    random.shuffle(_list)

とりあえずこれで対応しました。

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください