0
1

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にはいろいろなデータ型があります。どれもプログラムを書く上で欠かせないもので、それぞれ独自の使いどころがあります。
データ型をうまく使いこなせれば、効率的でわかりやすいコードが書けるようになるはずです。
この記事では、Pythonの基本的な標準型にまとめてみました。

参考:

数値型(int, float, complex)

int

整数を表すデータ型です。
他言語のようなint32やint64の指定は不要で、非常に大きな値も扱えます。

x = 42
y = -7
print(type(x))  # 出力: <class 'int'>

float

浮動小数点数を表すデータ型。

pi = 3.14159
print(type(pi))  # 出力: <class 'float'>

complex

複素数を表すデータ型で、a + bjの形式で表現します。

z = 3 + 4j
print(type(z))  # 出力: <class 'complex'>

ブーリアン型(bool)

bool

真偽値を表すデータ型です。

is_happy = True
print(type(is_happy))  # 出力: <class 'bool'>

イテレータ型

イテレータは、一度に1つずつ値を取り出せる仕組みを提供します。forループでよく使われます。
イテレータの性質として一度next()で要素を取り出すと、その要素はイテレータから「消費」され、再度アクセスすることはできません。

numbers = iter([1, 2, 3])
print(next(numbers))  # 出力: 1
print(next(numbers))  # 出力: 2
print(type(numbers))  # 出力: <class 'list_iterator'>
# 再びリスト全体を取得しようとしてもできない
print(list(numbers))  # 出力: [3]

ジェネレータ型

yieldキーワードを使って値を一つずつ生成するイテレータ。
ジェネレータは、計算結果を逐次生成します。
遅延評価(lazy evaluation)によりメモリ効率に優れています。

def my_generator():
    yield 1
    yield 2
    yield 3

gen = my_generator()

print(type(gen))  # 出力: <class 'generator'>

シーケンス型(list, tuple, range)

list

複数の値を順序付けて格納する可変長のデータ型です。

fruits = ["apple", "banana", "cherry"]
print(type(fruits))  # 出力: <class 'list'>

tuple

リストに似ていますが、要素が変更できない(イミュータブル)データ型です。

coordinates = (10, 20)
print(type(coordinates))  # 出力: <class 'tuple'>

range

整数の範囲を表すイミュータブルなデータ型です。

r = range(5)
print(type(r))  # 出力: <class 'range'>

テキストシーケンス型(str)

str

テキスト型で、Unicodeをサポート。

text = "Hello, World!"
print(type(text))  # 出力: <class 'str'>

バイナリシーケンス型(bytes, bytearray, memoryview)

bytes

バイト列を表すデータ型です(変更不可)。

b = b"hello"
# b[0] = 72 変更不可のため変更しようとするとTypeErrorがRaiseされる
print(type(b))  # 出力: <class 'bytes'>

bytearray

バイト列を表しますが、変更可能です。

ba = bytearray(b"hello")
ba[0] = 72  # 変更可能
print(type(ba))  # 出力: <class 'bytearray'>

memoryview

バイトデータへのビューを作成します。

mv = memoryview(b"hello")
print(mv[0])  # 出力: 104 (ASCIIコードが出力される)
print(type(mv))  # 出力: <class 'memoryview'>

集合型(set, frozenset)

set

一意の要素を順序なしで保持するデータ型です。

numbers = {1, 2, 3, 3}
print(type(numbers))  # 出力: <class 'set'>

frozenset

setと同様ですが、変更できない(イミュータブル)データ型です。

fs = frozenset([1, 2, 3])
print(type(fs))  # 出力: <class 'frozenset'>

マッピング型(dict)

キーと値のペアを保持するデータ型です。

person = {"name": "Alice", "age": 25}
print(type(person))  # 出力: <class 'dict'>

特殊型(None)

None

値が存在しないことを表すデータ型です。

x = None
print(type(x))  # 出力: <class 'NoneType'>

まとめ

今回はPythonのデータ型についてまとめてみました。
実装の中で型をチェックしたり、型ヒントを記述することが度々あると思うので参考になれば嬉しいです!

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?