2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘】よくつかうコードスニペット: Python標準ライブラリ系

Posted at

目的

鳥頭のため、ちょっと書いてないだけで基礎的な記法も忘れる始末。

一覧

json

JSONデータのシリアライズ(PythonオブジェクトをJSON文字列に変換)

import json

data = {
    "name": "Example Item",
    "price": 19.99,
    "in_stock": True
}

# JSON文字列に変換
json_data = json.dumps(data)
print(json_data)  # {"name": "Example Item", "price": 19.99, "in_stock": true}

JSONデータのデシリアライズ(JSON文字列をPythonオブジェクトに変換)

# JSON文字列
json_data = '{"name": "Example Item", "price": 19.99, "in_stock": true}'

# Pythonオブジェクトに変換
data = json.loads(json_data)
print(data)  # {'name': 'Example Item', 'price': 19.99, 'in_stock': True}

JSONファイルの読み込みと書き込み

# JSONファイルに書き込み
with open("data.json", "w") as f:
    json.dump(data, f)

# JSONファイルから読み込み
with open("data.json", "r") as f:
    data_from_file = json.load(f)
print(data_from_file)

日付と時間の操作

from datetime import datetime, timedelta

# 現在の日付と時間
now = datetime.now()

# 日付のフォーマット変更
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')

# 特定の日付までの加算
future_date = now + timedelta(days=7)

リスト操作、表記

リストへの追加・削除

my_list = [1, 2, 3]

# 末尾に追加
my_list.append(4)  # [1, 2, 3, 4]

# 特定の位置に挿入
my_list.insert(1, 'a')  # [1, 'a', 2, 3, 4]

# 特定の要素を削除
my_list.remove('a')  # [1, 2, 3, 4]

# 最後の要素を取り出して削除
last_element = my_list.pop()  # 4, 残りは [1, 2, 3]

スライス

my_list = [1, 2, 3, 4, 5]

# 最初の3つの要素
first_three = my_list[:3]  # [1, 2, 3]

# 最後の2つの要素
last_two = my_list[-2:]  # [4, 5]

# 一定間隔での取得
every_second = my_list[::2]  # [1, 3, 5]

リスト内包表記とフィルタリング

# リストから偶数のみ抽出
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [num for num in numbers if num % 2 == 0]

map記法

# リストの要素を二乗
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))  # [1, 4, 9, 16]

filter関数

# 偶数のみ抽出
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))  # [2, 4]

reduce関数

from functools import reduce

# リスト内の全要素の積
numbers = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, numbers)  # 24

CSVファイルの読み書き

import csv

# CSVの読み込み
with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    data = [row for row in reader]

# CSVへの書き込み
with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Name', 'Age'])
    writer.writerow(['Alice', 30])
    writer.writerow(['Bob', 25])

クラス

サンプルクラス

class Animal:
    species = "Mammal"  # クラス変数: すべてのインスタンスで値を共有

    def __init__(self, name):
        self.name = name  # インスタンス変数: インスタンスごとに値が異なる
        self._name = f"{name}_private"

    @property # propertyデコレータによって、メソッドを属性のように扱える
    def name(self):  # ゲッター
        return self._name

    @name.setter
    def name(self, value):  # セッター
        if isinstance(value, str) and value:
            self._name = value
        else:
            raise ValueError("Name must be a non-empty string")

    @classmethod
    def set_species(cls, species_name):
        cls.species = species_name

    @staticmethod
    def is_animal():
        return True

cat = Animal("Whiskers")
dog = Animal("Buddy")

print(cat.species)  # Mammal
print(dog.species)  # Mammal
print(cat.name)  # Whiskers
print(dog.name)  # Buddy

# クラス変数を変更
Animal.species = "Bird"
print(cat.species)  # Bird
print(dog.species)  # Bird

# クラスメソッドの呼び出し
Animal.set_species("Reptile")
print(Animal.species)  # Reptile

# 静的メソッドの呼び出し
print(Animal.is_animal())  # True

cat.name = "Bob"  # セッターを使用して値を設定
print(cat.name)  # Bob

特殊メソッド(マジックメソッド)

Pythonでは、init, str, repr などの特殊メソッド(ダンダーメソッド)があり、特定の操作や組み込み関数をオーバーライドできる

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def __str__(self):
        return f"{self.title} by {self.author}"  # print()での表示

    def __repr__(self):
        return f"Book({self.title!r}, {self.author!r})"  # オブジェクトの公式な文字列表現

book = Book("1984", "George Orwell")
print(book)  # 1984 by George Orwell
print(repr(book))  # Book('1984', 'George Orwell')

2
3
0

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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?