- トップページ
- 特集PC技術
- Pythonを学ぼう
- 第10回 リストの作成
Pythonを学ぼう
第10回 リストの作成
1.リストとは
リストはさまざまなオブジェクトを格納する列を表します。
具体的には、次のように、"[]"括弧の中に要素をカンマで区切って列挙したものです。
[1, 2, 3, 4]
リストには次の特徴があります。
- 数値、文字列など、どのオブジェクトでも格納できる
- 数値、文字列など、異なるオブジェクトを一つのリストに格納できる
- リストは動的のため、リストの大きさを指定する必要がない
2.直接記述して作成
要素を直接記述して、リストを作成します。
次のプログラムを見てください。
# coding: utf-8 # リストの作成 a = [3, 2, 1] print(a) # 空のリストを作成 b = [] print(b) # 異なるオブジェクトを同時に格納 c = [1, 'a'] print(c) |
実行結果
[3, 2, 1]
[]
[1, 'a']
3.一定の連番で作成
range関数を使うと、連番からリストを作成することができます。
range(開始整数, 終了整数, ステップ)
開始整数以上、終了整数未満の範囲で、リストを作成します。
開始整数とステップは省略できます。
その場合、開始整数は0、ステップは1としてリストを作成します。
# coding: utf-8 # 0以上2未満までのリストを作成 a = range(3) print(a) # 0以上10未満までを2ステップで作成 b = range(0, 10, 2) print(b) |
実行結果
[0, 1, 2]
[0, 2, 4, 6, 8]
4.シーケンスから作成
シーケンス型(文字列、タプル)からリストを作成します。
タプルはリストに似たシーケンスです。
タプルに関しては、以降の回で紹介します。
# coding: utf-8 # 文字列から作成 a = list('aaa') print(a) # タプルから作成 b = list((3, 2, 1)) print(b) |
実行結果
['a', 'a', 'a']
[3, 2, 1]
5.スライスで作成
スライスと呼ばれる機能を使用して、リストの指定した範囲の要素をコピーして新しいリストを作成します。
[開始インデックス:終了インデックス:ステップ]
開始インデックス~終了インデックス未満までの範囲でリストを作成します。
開始インデックス、終了インデックス、ステップはそれぞれ省略できます。
その場合、開始インデックスは「左端」、終了インデックスは「右端」、ステップは1としてリストを作成します。
# coding: utf-8 a = [0, 1, 2, 3, 4] # インデックスが0~4未満で作成 print(a[0:4]) # インデックスが0~4未満で、かつ2ステップで作成 print(a[0:4:2]) # インデックスが3~右端までで作成 print(a[3:]) # 全コピー(インデックスが左端~右端) print(a[:]) |
実行結果
[0, 1, 2, 3]
[0, 2]
[3, 4]
[0, 1, 2, 3, 4]
6.Javaとの比較
Javaのソースコードとの比較をします。
Pythonのリストと比較する場合、Javaの配列よりjava.util.ArrayListクラスの方が似ているため、
このクラスを使って比較をします。
Javaを知っている方は参考にしてください。
Python | Java |
---|---|
# coding: utf-8 # 空のリストを作成 a = [] print(a) # リスト[3, 2, 1]の作成 b = [3, 2, 1] print(b) # 数値と文字列を組み合わせたリストを作成 c = [1, 'a'] print(c) |
import java.util.ArrayList; public class Java10 { public static void main(String[] args) { // 空のリストを作成 ArrayList a = new ArrayList(); System.out.println(a); // リスト[3, 2, 1]を作成 ArrayList b = new ArrayList(); b.add(new Integer(3)); b.add(new Integer(2)); b.add(new Integer(1)); System.out.println(b); // 数値と文字列を組み合わせたリストを作成 ArrayList c = new ArrayList(); c.add(new Integer(1)); c.add(new String("a")); System.out.println(c); } } |
Pythonのリストは、要素を指定してリストを作成できるのに対し、Javaのリストでは、空のリストを作成してから要素を追加する必要があります。
なお、Javaで数値と文字列などを組み合わせてリストを作成できるのは、Java1.4までです。
Java1.5以降だと、Generics機能の導入により、数値と文字列などを組み合わせてリストを作成できません。
コメントの投稿
トラックバックURL
http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1749