Pythonのデータ型には以下の基本データ型があります。
int | 整数 |
bool | 真偽値のどちらかの値をとります |
float | 倍精度浮動小数点の数値 |
complex | 倍精度浮動小数点型の複素数 |
str | 文字、文字列、ワード、テキスト |
tuple | 二つ以上の任意のデータ型の要素からなるリスト |
list | リスト |
dict | key-value形式でデータをストアします |
set | 任意のデータでデータ形式を定義 |
Numberオブジェクト
Numberオブジェクトは数値型のデータを保持します。
- Integer
- bool
- Float
- complex
>>> a = 10
>>> type(a)
<class 'int'>
>>> a.bit_length()
4
>>>
type()関数はtype()関数はオブジェクトの型を返します。
bit_length()はデータの値を表すのに必要なメモリのビット数を返します。
bool型のデータは真偽値のどちらかを返します。とりえる値は、True または Falseのどちらかです。
>>> b=True
>>> type(b)
<class 'bool'>
>>> b.bit_length()
1
>>>
float型は倍精度浮動小数点の数値を保持します。
>>> c = 3.23
>>> d = 3.23/5
>>> type(d)
<class 'float'>
>>> d
0.646
>>> d.as_integer_ratio()
(5818650718562681, 9007199254740992)
>>>
floatオブジェクトは内部で、バイナリフォーマットの形式で保持され処理されています。IEEE754 標準で定義されている64ビット倍精度の形式で処理されます。
n = (b1 * 2-1 )+ (b2 * 2-2 ) + (b3 * 2-3 ) + (b4 * 2-4 ) + ...
関数 as_integer_ratio() は浮動小数点の数値を整数比で表示します。
>>> c = 1
>>> d = c / 2.0
>>> d
0.5
>>> type(d)
<class 'float'>
>>> d.as_integer_ratio()
(1, 2)
>>>
シーケンスオブジェクト
シーケンスオブジェクトは非負の数値でインデックスされた連続したデータからなる一塊のデータオブジェクトです。
関数 len()はシーケンスを構成する要素の長さを返します。
- str
- tuple
- list
- dict
- set
スライス
a[i:j] はiとjで挟まれたインデックスkで示されるすべての要素を選択します。 i<= j <= k
選択された要素のインデックスは0から再インデックスされます。
ステップパラメータ
a[I:j:k]は以下のインデックスで示される要素を選択します。 x = i + n*k, n >= (i <= x <= j )
I,j の間にある数値kで示すステップ数でインクリメントされる数値の全てを選択します。
Stringオブジェクト
Stringオブジェクトは文字列を扱います。連続したUnicodeの文字(U+0000 - U+10FFFF)のデータです。
以下のビルドイン関数は型を変換します。
- ord() String -> Integer
- chr() Integer -> String
- str.encode() String -> bytes
- byte.decode() bytes ->String
>>> d1 = ord("A")
>>> d1
65
>>>
>>> d2 = chr(d1)
>>> d2
'A'
>>>
>>> d3 = d2.encode()
>>> d3
b'A'
>>>
>>> d4 = d3.decode()
>>> d4
'A'
>>>
以下のようなテキスト処理関数が定義さています。
関数 | ||
find() | ||
replace() | ||
split() | ||
strip() | ||
upper() | ||
lower() | ||
>>> s = 'this is a string.'
>>> s.split()
['this', 'is', 'a', 'string.']
>>> s.find('string')
10
>>> s.find('text')
-1
>>> s.replace(' ', '_')
'this_is_a_string.'
>>> s.strip(' a')
'this is a string.'
>>> s.strip('this')
' is a string.'
>>> s.upper()
'THIS IS A STRING.'
>>>
tupleはコンマで区切るだけで、複数のオブジェクトを単一のオブジェクトとして扱います。
>>> t = (1,"test",1.2345)
>>> type(t)
<class 'tuple'>
>>>
listオブジェクト
リストは[ ]内のコンマで区切られたデータ構造です。
基本動作はtupleオブジェクトと同様です。
>>> t = (1,"test",1.2345)
>>> type(t)
<class 'tuple'>
>>>
>>> l = [2,"test2",2.3456]
>>> type(l)
<class 'list'>
>>>
>>> l = list(t)
>>> type(l)
<class 'list'>
>>> l
[1, 'test', 1.2345]
>>>
str やtupleはimmutableシーケンスオブジェクトで、各要素のインデックスを含めて、一度生成されると、変更することができません。
これに対してlistオブジェクトはmutableなオブジェクトで、内容を変更することができます。
関数 | 処理 | |
append() | 要素を追加する | |
extend() | 要素を拡張する。下の例を参照。 | |
insert() | 引数で指定したインデックスの後ろに挿入する。 | |
remove() | 要素を削除する | |
pop() | インデックスで指定した要素を抜き取る。 |
>>> l
[1, 'test', 1.2345]
>>>
>>>
>>> l.append([4,'data2'])
>>> l
[1, 'test', 1.2345, [4, 'data2']]
>>> l.extend(['data3',5,678.45])
>>> l
[1, 'test', 1.2345, [4, 'data2'], 'data3', 5, 678.45]
>>> l.insert(4,'ins_data')
>>> l
[1, 'test', 1.2345, [4, 'data2'], 'ins_data', 'data3', 5, 678.45]
>>> l.remove('test')
>>> l
[1, 1.2345, [4, 'data2'], 'ins_data', 'data3', 5, 678.45]
>>> p = l.pop(2)
>>> l
[1, 1.2345, 'ins_data', 'data3', 5, 678.45]
>>> p
[4, 'data2']
>>>
>>> l[1:3]
[1.2345, 'ins_data']
>>> l[1:5:2]
[1.2345, 'data3']
>>> l[1:6:2]
[1.2345, 'data3', 678.45]
>>>
リスト型のデータを操作する関数でデータを追加、削除できます。下側のブラケット[:],[::]はスライスとステップ操作をした時の結果です。
Dictオブジェクト
DictはDictionaryのことで変更可能なシーケンス型のデータです。key-vlue形式で保持されます。
php等ではkey-value型のデータ型は連想記憶として定義されています。keyで設定、参照できるデータ型です。
>>> d = {
... "Name":"1302",
... "date":"2023-04-04",
... "open":123.0,
... "high":124.0,
... "low":122.0,
... "close":123.2,
... "volume":123233
... }
>>> type(d)
<class 'dict'>
>>> d["Name"]
'1302'
>>> d.keys()
dict_keys(['Name', 'date', 'open', 'high', 'low', 'close', 'volume'])
>>> d.values()
dict_values(['1302', '2023-04-04', 123.0, 124.0, 122.0, 123.2, 123233])
>>> d.items()
dict_items([('Name', '1302'), ('date', '2023-04-04'), ('open', 123.0), ('high', 124.0), ('low', 122.0), ('close', 123.2), ('volume', 123233)])
>>>
Sets
任意のデータセットを作成します。各要素は一つだけ含まれます。
>>> s = set(['u','a','us','b','bi','d','u','a'])
>>> s
{'b', 'd', 'bi', 'us', 'u', 'a'}
>>>