【Pythonデータ分析】Python基礎知識

PythonとJavaの比較

リスト

Pythonのリストは、データをまとめて管理するための便利なデータ型です。リストの基本的な特徴は以下の3つです。

  • 様々なデータ型の要素を入れることができる
list = [1, "apple", 3.14, True, ["リスト"]]  # 左から順に整数、文字列、浮動小数点数、真偽値、リストを格納
print(list)  # 出力: [1, 'apple', 3.14, True, ['リスト']]
  • 順番がついている
fruits = ["apple", "banana", "orange"]
print(fruits[0])  # 出力: apple
print(fruits[1])  # 出力: banana
print(fruits[2])  # 出力: orange
  • リストを作成後、要素の追加、変更、削除などが自由に行える。
fruits = ["apple", "banana", "orange"]
fruits.append("melon")  # 最後に "melon" を追加
print(fruits)  # 出力: ["apple", "banana", "orange", "melon"]

続いて、リストに関連する他の機能について簡単に紹介します。

スライス

スライスは、リストから一部分を取り出して新しいリストを作成する機能です。特に大量のデータを扱う際に部分的にデータを取り出すのに役立ちます。

# スライスの基本構文
list[start:stop:step]
  • start: スライスの開始位置 (省略可能、デフォルトは先頭)
  • stop: スライスの終了位置 (省略可能、デフォルトは末尾)
  • step: スライスのステップ (省略可能、デフォルトは 1)
# スライスの使用例
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# インデックス2からインデックス5(インデックス5は含まない)までを取得し、サブリストに格納
sub_list = numbers[2:5]
print(sub_list)  # 出力: [2, 3, 4]

リスト内包表記

リスト内包表記は、Pythonにおいて、簡潔な構文で新しいリストを生成する機能です。コード量を削減し可読性を高めるだけでなく、多くの場合、forループなどを用いた記述よりも高速に処理を実行できます。

# リスト内包表記の基本構文
[式 for 変数 in イテラブル if 条件]
  • 式: 新しいリストの要素となる値を計算する式。
  • 変数: イテラブルから取り出した要素を格納する変数。
  • イテラブル: リスト、タプル、range()などの要素を繰り返し取り出せるオブジェクト。
  • 条件: (省略可能) Trueの場合のみ、要素が新しいリストに追加される。
# 0から9までの数値の2乗をリストとして生成
squares = [x**2 for x in range(10)] 
print(squares) #出力: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

enumerate()関数

enumerate() 関数は、リストの要素とそのインデックスを同時に取得するための組み込み関数です。

fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
  print("Index: ", index, "Fruit: ", fruit)

# 出力:
# Index: 0, Fruit: apple
# Index: 1, Fruit: banana
# Index: 2, Fruit: orange

辞書

辞書はキーと値のペアを格納するデータ構造です。

# 辞書の作成
dict = {'apple': 100, 'banana': 200, 'orange': 150}

# 値の取得
price = dict['banana']  # price は 200 になる

# 値の変更
dict['apple'] = 120

# 要素の追加
dict['grape'] = 300

# 要素の削除
del dict['orange']

関数について

デフォルト引数

デフォルト引数とは、関数を定義する際に、引数にあらかじめ与えておく値のことです。デフォルト引数を使うことで、必要に応じて引数を省略でき、様々な状況に対応できる関数を定義できます。

def greet(name="World"):
  print("Hello, " + name + "!")

greet()          # 引数を省略: Hello, World!
greet("Python")   # 引数を指定: Hello, Python!

デフォルト引数の注意点は2つあります。

  • デフォルト引数に可変なオブジェクト(リストや辞書)を使用する場合は、同じ可変オブジェクトが関数が呼ばれるたびに再利用されるため、予期せぬ変更が生じる可能性がある。
  • デフォルト引数は、引数リストの末尾に置く必要がある。

複数の戻り値

Pythonの関数は、複数の値を返すことができます。複数の戻り値を返す方法はいくつかありますが、最も一般的なのはタプルを使う方法です。

def get_name_and_age():
  name = "Alice"
  age = 30
  return name, age # 複数の値をタプルとして返す

# 受け取り方1: タプルとして受け取る
result = get_name_and_age()
print(result)       # 出力: ('Alice', 30)
print(type(result)) # 出力: <class 'tuple'>

# 受け取り方2: 複数の変数で受け取る(タプルのアンパック)
name, age = get_name_and_age()
print(name)  # 出力: Alice
print(age)   # 出力: 30