LoginSignup
2
2

More than 5 years have passed since last update.

pythonのリストでの括弧 () []

Last updated at Posted at 2018-02-09

pythonのコードを久しぶりに書いたら、しょうもないミスをしたので、メモしておきます。


pythonのリストはfiles=[]のように書くことができ、

files=["ms1.txt","ms2.txt","ms3.txt"]
for i in range(0,3):
 print(files[i])

という風に書けば、

ms1.txt
ms2.txt
ms3.txt

と出力されます。こう見ると、とても簡単なのですが、久しぶりにコードを書いた自分は

files=["ms1.txt","ms2.txt","ms3.txt"]
for i in range(0,3):
 print(files(i))

と書いてしまいました。2つの違いはprint文の中のfiles[]files()で、括弧が違います。
リストの要素番号をfiles()と指定すると、以下のようなエラーが返ってきます。

    print(files(i))
TypeError: 'list' object is not callable

最初、なんでこんなエラー文が返ってくるかわからなかったのですが、調べてみたら

list()は引数にiterableなオブジェクト(タプルや文字列)を指定するとリストに変換されます。

リスト型の使い方
とのこと、いわれてみたら確かにstr()int()などと同じような関数ですね...今回は、整数を引数に指定したためにこのエラーが出てしまいました。

追記

コメントで指摘してもらいましたが、エラー文はこれが原因ではないみたいです。どうも、こういう風に書くと、関数として認識されるところまではあっているみたいですが、pythonはcallメソッドにより関数を定義されていないかどうかを判断するみたいです...classやメソッドは使ったことがないのでよくわからないので、間違ったことを言っているかもしれません

2
2
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2