【Pythonの基礎】Pythonの7つのデータ型

先頭に立って

Pythonのデータ型には主に、、、、、、、、含まNumber(数字)Boolean(布尔)ますString(字符串)List(列表)Tuple(元组)Dictionary(字典)Set(集合)

さらに、可変データ型と不変データ型に分類され、可変データ型可以随着函数的执行发生变化,而不可变数据类型不可以改变
とは、不変データ型 (3): Number(数字)Boolean(布尔)、 、String(字符串)およびTuple(元组)
可変データ型 (4): List(列表)を指します。Dictionary(字典)Set(集合)

Q: 変数の型を判断するにはどうすればよいですか?
回答: 1. type (変数名) メソッドを使用して変数のデータ型を返すことができます; 2. isinstance (変数名、データ型) は True または False のみを返すことができます

1. 数字の種類(数値)

Python3 には、int (整数)、float (浮動小数点)、complex (複素数) の 3 つのデータ型があります。
Python 3 の整数型はサイズ制限がなく Long 型として使用でき、bool は整数型のサブタイプです。

# 整型int,浮点型float
a=2
b=2.6
print(a,b,type(a),type(b),isinstance(a,int))
# 输出结果为
# 2 2.6 <class 'int'> <class 'float'> True

2、ブール型(Boolean)

ブール型はロジックに関わるデータ型で、TrueとFalseの2つの値のみを持ちます。(注: Boolean 値を追加できます。追加後、型は int 型に変換されます)

# 2.布尔型Boolean
c=True
d=False
d=c+d
print(type(c),type(d),d)
# 输出结果
# <class 'bool'> <class 'int'> 1

3.文字列型(String)

Python の変数定義では、一重引用符と二重引用符で囲まれた値が文字列 str 型になります。

3.1 文字列インデックス

ここに画像の説明を挿入
文字列の正のインデックス a[i] は 0 から始まり最初の文字を表し、負のインデックス a[-1] は -1 から始まり文字列の末尾の文字を表します。

3.2 文字列のインターセプト、スプライシング、および多重化

a = b[begin, end, step]、begin は開始位置を意味し、デフォルトは 0、end は終了位置を意味し、デフォルトは可変長、step はステップ サイズを意味し、デフォルトは 1 です。例: はa【i,j】、位置 i から開始して位置 j で終了することを意味します。ここで、インターセプトされた文字列には位置 j は含まれません。
: スライス内で負のインデックスを使用することは、端から先頭までフェッチすることを意味するものではなく、インデックスはデータフェッチの範囲を制限するだけです。
步长読み出す順番を決めるためで、ステップサイズが負の場合は最後から先頭へ、正の場合は最初から最後まで読みます。

str1 = "hello,world!"
print(str1[::])
print(str1[2:5])
print(str1[2,6,2])
print(str1[-1:-4])
print(str1[-5:-2])
print(str1[-1:-5:-1])

# 输出结果
hello,world!
llo
lo
空
orl
!dlr
a = "我是王菜鸟"
b = ",你呢"
print(a[0],a[-1],a[:3],a[1,-1],a+b,a*2)

# 输出结果
我 鸟 我是王 是王菜 我是王菜鸟,你呢 我是王菜鸟我是王菜鸟

4番目、リストタイプ(List)

リストは頻繁に使用されるデータ型であり、その要素は文字列、数値、リスト、タプルなどのカスタム オブジェクトにすることができます。リストは [] で定義され、英語のカンマで区切られたコレクションであり、要素は繰り返すことができます。

リスト内の操作には通常索引切片in和not inlen操作符+和*添加/删除/查询元素、が含まれます排序和反转リストのインデックス付けとスライスは文字列と一致するため、ここでは繰り返しません。将元组、字符串等序列转换成列表(不会修改原有的序列)

次に、リスト内のいくつかの操作を紹介します。

4.1 に入っている、入っていない

リストに値が存在するかどうかを判断し、存在する場合は True を返し、存在しない場合は False を返します (注: 存在するということはリストの要素と同じ意味です)。

store = [[65, 33], '女', 'wang', 24, 2.3]
print("wang" in store)
print("33" in store)
print("女" not in store)

# 输出结果
True
False
False

4.2レン()

len() メソッドはリスト内の要素の数を返します。

store = [[65, 33], '女', 'wang', 24, 2.3]
print(len(store))

# 输出结果
5

4.3 要素の追加/削除/クエリ

要素の追加/削除/クエリ
操作する 方法 説明
要素を追加 追加(obj) リストに要素を追加します。つまり、指定された要素をリストの最後に追加します。
拡張(反復可能) 複数の要素をリストに追加します。つまり、リストの最後に複数の要素を追加します。反復可能はシーケンスであり、追加される要素のシーケンスを示します。
挿入(インデックス、オブジェクト) リスト内の指定した位置に要素を挿入します(指定した位置以降の要素は添字 1 つ分後方に移動します)
要素の削除 ポップ(インデックス) リスト内の指定されたインデックスにある要素を削除して返します。インデックスのデフォルトは -1 (最後の要素)
削除(要素) 指定された値に一致する最初の要素を削除します (関連する値は返されません)。
リスト要素またはリスト全体を削除します
クリア() リスト内のすべての要素を削除します。つまり、成功すると、リストは空のリストになります。
クエリ要素 インデックス(値、開始=なし、停止=なし) リスト内の指定された範囲から指定された値と最初に一致するインデックス位置を検索します (start と stop はキーワードに基づいたパラメーターを渡すことはできません)。
カウント(オブジェクト) 要素がリスト内に出現する回数をカウントします。

要素を追加

# append
store = [[65, 33], '女', 'wang', 24, 2.3]
store.append("王菜鸟")
print(store)
store.append([66, 68])
print(store)

# extend
store.extend(["Kevin",168])
print(store)

# insert
store.insert(2,999)
print(store)


# 输出结果
[[65, 33], '女', 'wang', 24, 2.3, '王菜鸟']
[[65, 33], '女', 'wang', 24, 2.3, '王菜鸟', [66, 68]]
[[65, 33], '女', 'wang', 24, 2.3, '王菜鸟', [66, 68], 'Kevin', 168]
[[65, 33], '女', 999, 'wang', 24, 2.3, '王菜鸟', [66, 68], 'Kevin', 168]

要素の削除

print(store.pop(2))
store.remove('Kevin')
print(store)
store.clear()
print(store)

# 输出结果
999
[]
[]

クエリ要素

store = [[65, 33], '女', 'wang', 24, 2.324]
print(store.index('女'))
print(store.count(24))

# 输出结果
1
2

4.4 ソート(sort)とリバース(逆順)

ソート (並べ替え) :

形式: list.sort(key=None, reverse=False)
key – 1 つのパラメーターを持つ関数を指定し、リスト内の要素から比較するコンテンツを抽出するために使用されるオブジェクトを返します
。デフォルトでの順序、つまり reverse= False、降順 reverse=True

list1 = [22, 11, 25, 98, 72, 68, 49]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)

# 输出结果
[11, 22, 25, 49, 68, 72, 98]
[98, 72, 68, 49, 25, 22, 11]

注意:sort中key参数的用法

# 按照总分成绩降序排名
list1 = [[97, 54, 93], [59, 78, 83], [44, 64, 97], [83, 79, 73]]
def sum_scores(scores):
    return scores[0] + scores[1] + scores[2]
    
list1.sort(key=sum_scores, reverse=True)
print(list1)

# 输出结果

Reverse (リバース)
reverse: 並べ替えルール、reverse = True の降順、reverse = False の昇順 (デフォルト)。

list1 = [22, 11, 25, 98, 72, 68, 49]
list1.reverse()
print(list1)

# 输出结果
[49, 68, 72, 98, 25, 11, 22]

4.5 リスト()

タプルや文字列などのシーケンスをリストに変換します (元のシーケンスは変更されません)。

# 元组
tup = (22, 86, 26, 35)
print(list(tup))
print(tup)

# 字符串
str1 = "Happy New Year"
print(list(str1))
print(str1)

# 输出结果
[22, 86, 26, 35]
(22, 86, 26, 35)

['H', 'a', 'p', 'p', 'y', ' ', 'N', 'e', 'w', ' ', 'Y', 'e', 'a', 'r']
Happy New Year

五、セット(セット)

Set Set は順序付けされていない反復不可能なシーケンスです。作成するには{}またはset()関数を使用します。空のセットを作成したい場合は set() を使用する必要があります。空の辞書の作成には { } が使用されます
: セットには数値、文字列、タプルなどの不変データ型のみが保存されますが、リスト、辞書、セットなどの可変データ型は保存できません。

set1 = set({
    
    "Kevin", "Lucy", "Toke", 24})
print(set1)

set2 = set("wang")
print(set2)

set3 = set({
    
    22, 33})
print(set3)

# 输出结果
{
    
    'Toke', 24, 'Lucy', 'Kevin'}
{
    
    'w', 'g', 'n', 'a'}
{
    
    33, 22}

6. 辞書の種類(辞書)

ディクショナリは、オブジェクトをキーと値のペア (キー: 値) で保存します。
1. キー (キー) は辞書内で一意である必要があり、キーは文字列、数値、タプルなどの不変のデータ型です。作成時にキーに複数の値が割り当てられている場合は、最後の値が保存されます。
2. 値 (value) には、None、数値、文字列、辞書などの任意のオブジェクトを指定できます。

dict1 = dict()
print(len(dict1), type(dict1))

dict2 = {
    
    }
print(len(dict2), type(dict2))

# 如果创建时键被赋值多次,最后一个值才被存储
dict3 = {
    
    "a": "Kevin", "b": "Lucy", "a": "Toke"}
print(dict3)

# 输出结果
0 <class 'dict'>
0 <class 'dict'>
{
    
    'a': 'Toke', 'b': 'Lucy'}

7. その他

7.1 ディープコピーとシャローコピー

Python は、リスト、セット、辞書などのデータ型に対してディープ コピー メソッドとシャロー コピー メソッドを提供します。浅いコピー: データのアドレスをコピーします。copy() メソッドはオブジェクトへのポインタを追加するだけで、データを保存するための新しいスペースを割り当てません。深いコピー:データ、元のデータと後のデータを
保存するための新しいスペースを割り当てます。
ディープコピーは影響しません

関数 説明
iterable.copy() 反復可能オブジェクトの反復可能データの浅いコピーを返します。
copy.deepcopy(反復可能) 反復可能オブジェクト iterable のディープ コピー データを返します。

比較的単純な観点から理解すると、浅いコピーと深いコピーはネストされたオブジェクトの違いであり、元のデータのネストされたオブジェクトの変更は、浅いコピーに対応するネストされたオブジェクトに同期的に影響を与え、ディープコピーは影響を受けません。
ストレージの観点から見ると、シャロー コピーはポインタが指す値のストレージ アドレスを増やすものであり、値を保存するための新しいメモリ空間は開きませんが、ディープ コピーは値を保存するための新しいメモリ空間を開きます。そしてポインタを新しいメモリアドレスに向けます。

7.2 型の比較

List[] (リスト): データの重複を許可する、順序付けされた変更可能なコレクション。
Tuple ( ) (タプル): データの重複を許可する、順序付けされた不変コレクション。
コレクション { } (セット): 順序付けされておらず、インデックスも付けられていない (インデックスはキー値です) コレクション。重複データはありません。
Dictionary { } (辞書): 順序なし、変更可能、インデックス付きコレクション、重複データなし。

おすすめ

転載: blog.csdn.net/qq_44723773/article/details/128679577