PythonのリストとJavaのリストの比較

新しいプログラミング言語を勉強するにあたって、リストやマップなどのいわゆるコレクションの使い方について把握することは重要だ。しかし、コレクションには追加、削除、挿入などのメソッドがいくつかあり、各言語でメソッド名や使い方などが異なっているため、それぞれの言語についてこれらのメソッドを覚えるのは意外と大変。ということで、Pythonのリストに関するメソッドを少しでも覚え易くするため、PythonのリストとJavaArrayListとを比較し、基本的な機能についてまとめてみた。Javaのリストは使ったことあるけどPythonのリストは分からない、という人のためになれば幸い。

以下では、リストをlistまたはx、リストの要素をe、インデックスを指定する変数をiとしている。

リストの初期化

  • 空のリストを作る場合
list = [] ##python
List list = new ArrayList(); //java
  • 任意の要素で初期化されたリストを作る場合

Pythonでは内包表記を使って、任意の要素で初期化されたリストを作成出来る。
リストの内包表記については以前の記事参照。ちなみにJavaではこのような機能は用意されていない。

要素の有無の判定

e in list ##python
list.contains(e); //java

リストの長さを取得

len(list) ##python
list.size(); //java

要素の置換

list[i] = e ##python
list.set(i,e); //java

要素の挿入

  • リストのi番目に要素eを挿入
list.insert(i, e) ##python
list.add(i, e); //java
  • 要素の末尾挿入
list.append(e) ##python
list.add(e); //java

要素の削除

  • リストに要素eがあれば、その要素をリストから1つ削除
list.remove(e) ##python 
list.remove(Object o); //java
  • リストのi番目の要素を削除
del list[i] ##python
list.remove(int i); //java

リストの連結

list.extend(x) ##python
または
list + x
list.addAll(x); //java

要素の検索(s[i]==x となる 最小の i を返す)

list.index(e) ##python
list.indexOf(e); //java