⇧ amazing...
PythonでTypeError: 'list' object is not callableと怒られる
以下の書籍を写経していて、
独学コンピューターサイエンティスト Pythonで学ぶアルゴリズムとデータ構造
print(list(zip(movie_list, ratings_list)))
⇧ って記述で、『TypeError: 'list' object is not callable』って怒られる。
stackoverflowさんで解決策が載ってました。
ハッキリとした回答は無いのだけど、おそらくデータ型が異なるリスト同士の統合については、
print(tuple(zip(movie_list, ratings_list)))
⇧ listじやなくて、tupleを使えってことらしい。
ちなみに、書籍で使ってるリストは、
movie_list = ["インターステラー", "インセプション", "プレステージ", "インソムニア", "バットマン ビギンズ"] ratings_list = [1, 10, 10, 8, 6]
⇧ ってな感じで、データ型が異なってますと。
Pythonは動的に型付けされていて、ガベージコレクションされている。構造化(特に手続き型)、オブジェクト指向、関数型プログラミングを含む複数のプログラミングパラダイムをサポートしている。Pythonは、その包括的な標準ライブラリのため、しばしば「バッテリーを含む」言語と表現される。
⇧ 動的型付け言語って言う割には、データ型で結構エラーにしてくれるPythonさんが扱い辛くて仕方ないんだが...
動作環境としては、Google Colaboratoryを使っていて、
import sys print(sys.version)
3.8.15 (default, Oct 12 2022, 19:14:39) [GCC 7.5.0]
import platform print(platform.python_version())
3.8.15
⇧ ってな感じで、Pythonのバージョンは3.8.15ということらしいんだけど、バージョンによってはlistでも動くってことなんかな?
というのも、stackoverflowの中で、
What's error you got? and which Python version you've been running? -In Python3+ this should work fine. Please confirm.
⇧ って言ってる人がおるのよね。
となると、Pythonってバージョンによる互換性を気にしないって方針なのかなというザワザワした気持ちになってしまうじゃないですか...
何か、データ型とか関係なく、listがエラーになる...
list1 = [2, 43, 48, 62, 64, 28, 3] list2 = [1, 28, 42, 70, 2, 10, 62, 31, 4, 14] set1 = set(list1) set2 = set(list2) list(set1.intersection(set2))
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-69-0697aafb2af0> in <module> 3 set1 = set(list1) 4 set2 = set(list2) ----> 5 list(set1.intersection(set2)) TypeError: 'list' object is not callable
⇧ 上記もtupleにすれば、エラーは出なくなるけども、listでエラーになる原因が分からん...
list1 = [2, 43, 48, 62, 64, 28, 3] list2 = [1, 28, 42, 70, 2, 10, 62, 31, 4, 14] set1 = set(list1) set2 = set(list2) tuple(set1.intersection(set2))
(2, 28, 62)
Python、相変わらずカオスだな...
毎度モヤモヤ感が半端ない...
今回はこのへんで。