[python] ファイルの読み書きまとめ はてなブックマーク - [python] ファイルの読み書きまとめ

目次 ファイルの書き込み ファイルの読み込み ファイルのデフォルト読み込み ファイルの追加書き込み ファイルを1行ずつ読み込み ファイルをリストとして読

[python] pep8規約まとめ はてなブックマーク - [python] pep8規約まとめ

Pythonのコードスタイルガイドpep8のまとめ。 コードのレイアウト インデント 突き出しインデントを使う場合ははじめの行には引数を付けずに次

[python] 現在時刻を扱う はてなブックマーク - [python] 現在時刻を扱う

Pythonの標準モジュールdatetimeを使うと、日付や時間を操作できるようになる。 現在の時刻を取得 >>> from datetime import datetime >>> datetime.now() datetime.datetime(2020, 8, 25, 14, 4, 6, 131518) 文字列を

[python] dictのマージ はてなブックマーク - [python] dictのマージ

update()でdictをマージすることができる。 d1 = {'a':1 , 'b':2} d2 = {'c':3 , 'd':4} d1.update(d2) print(d1) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

[python] dot-envの使い方 はてなブックマーク - [python] dot-envの使い方

python-dotenvを使うことで、.envファイルを使って環境変数を扱うことができる。 これだけの手順でよい。 python-dotenv

[python] classの使い方 はてなブックマーク - [python] classの使い方

classについて、たくさんあるが最小限の使い方についてメモ。 使い方 __init__でインスタンス作成時のオペレーションを定義する インスタン

[python] pipの使い方まとめ はてなブックマーク - [python] pipの使い方まとめ

目次 pipのインストール パッケージのインストール バージョンを指定してパッケージのインストール インストール済みのパッケージ一覧の確認 パッケージ

[python] トライ木の実装 はてなブックマーク - [python] トライ木の実装

import collections class TriNode(object): def __init__(self): self.children = collections.defaultdict(TriNode) self.is_word = False class TriTree: def __init__(self): self.root = TriNode() def insert(self, word): current = self.root for letter in word: current = current.children[letter] current.is_word = True def search(self, word): current = self.root for letter in word: current = current.children[letter] if current is None: return False return current.is_word def startswith(self, prefix): current = self.root for letter in prefix: current = current.children[letter] if

[python] 優先度付きキューの実装 はてなブックマーク - [python] 優先度付きキューの実装

import sys class PriorityQueueNode(object): def __init__(self, obj, key): self.obj = obj self.key = key def __repr__(self): return str(self.obj) + ': ' + str(self.key) class PriorityQueue(object): def __init__(self): self.array = [] # 要素を追加 def insert(self, node): self.array.append(node) return self.array[-1] # 最も高い優先度のnodeを取り出し def extract_min(self): if self.array is None: return None minimum =

[python] ハッシュテーブルの実装 はてなブックマーク - [python] ハッシュテーブルの実装

class Item(object): def __init__(self, key, value): self.key = key self.value = value class HashTable(object): def __init__(self, size=10): self.size = size self.array = [[] for _ in range(self.size)] def _hash_function(self, key): return key % self.size def set(self, key, value): hash_index = self._hash_function(key) for node in self.array[hash_index]: if node.key == key: node.value = value return self.array[hash_index].append(Item(key, value)) def get(self, key): hash_index = self._hash_function(key) for node in self.array[hash_index]: if node.key == key: return

[python] ヒープの実装 はてなブックマーク - [python] ヒープの実装

class MinHeap(object): def __init__(self): self.array = [] def __len__(self): return len(self.array) def extract_min(self): if not self.array: return None if len(self.array) == 1: return self.array.pop(0) minimum = self.array[0] self.array[0] = self.array.pop(-1) self._bubble_down(index=0) return minimum def peek_min(self): return self.array[0] if self.array else None def insert(self, key): if key is None: raise TypeError('key cannot be none') self.array.append(key) self._bubble_up(index=len(self.array) - 1) def _bubble_down(self, index): min_child_index = self._find_smaller_child(index) if min_child_index == -1: return if self.array[index]

[python] キューの実装 はてなブックマーク - [python] キューの実装

scratch # queueのベースクラスを作成 # isEmpty, lenメソッド, 全nodeの一覧を持つ class AbstractQueue: def __init__(self): self.top = 0 def isEmpty(self): return self.top == 0 def __len__(self): return self.top def __str__(self): result = '------\n' for element in self: result += str(element) + '\n' return

[python] スタックの実装 はてなブックマーク - [python] スタックの実装

scratch class AbstructStack: def __init__(self): self.top = 0 def isEmpty(self): return self.top == 0 def __len__(self): return self.top def __str__(self): result = '------\n' for element in self: result += str(element) + '\n' return result[:-1] + '\n------' class StackNode(object): def __init__(self, value): self.value = value self.next = None class LinkedListStack(AbstructStack): def __init__(self): AbstructStack.__init__(self) self.front = 0 def dequeue(self): if self.isEmpty(): raise IndexError('stack is empty') value = self.front.value self.front = self.front.next self.top