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

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)

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


こういうブログもありました。

人気のあるブログ:

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


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