Pythonのデータ構造と基礎となる分析


1.Pythonのデータ構造タイプ

#1.1	List列表  线性表
[]定义,增删查改
#1.2.Tuple元组  只读列表 元素不可变  元素内容也不可变
#()定义,查找
t1=(1,2,3,4)
print(t1[0])

#3.Set集合 元素唯一,不可重复的列表
#{}定义,增删查改
#用 in 来判断是否在集合s1里
s1 = {1,2,3,4}


#4.Dict字典 存储 键值对key-value
#{}定义,增删查改
d1={'Lucy':67,'Tom':89}
d1['Lucy']
d1['Lucy']=100
'Lucy' in d1
'xiaoming'  in  d1

2.Pythonデータ構造タイプの内部分析

データ構造:リンクリスト、配列、二分木、ハッシュ、グラフ

2.1リストリストの最下層はチェーンストレージですか、それとも配列ストレージですか?

頭の挿入
ここに画像の説明を挿入
尻尾挿入
ここに画像の説明を挿入
テスト時差:
ここに画像の説明を挿入
結論:採用されたリストアレイストレージ構造体
配列
尻尾挿入:時間計算量O(1);
頭の挿入:時間計算量O(n)
ヘッド挿入では、要素を後方に移動してから、挿入操作のリンクリストを作成する必要があり
ここに画像の説明を挿入
ます
ここに画像の説明を挿入
頭の挿入
ここに画像の説明を挿入
テール挿入
ここに画像の説明を挿入

2.2Setコレクションの基礎となるデータ構造は何ですか

コードテスト1:
100万の数字を作成するコレクション(0-999999)、次にforループを使用して、499999がコレクションにあるかどうかを判断し、検索操作を実行して、100回検索します。
ここに画像の説明を挿入
コードテスト2:
テストオブジェクトがリストに置き換えられることを除いて、上記と同じです。
ここに画像の説明を挿入
テスト結果(おおよそ):
コレクション検索時間:10us
リスト検索時間:1s
ここに画像の説明を挿入
結論:Pythonでコレクションを設定するハッシュ構造:時間計算量O(1)

リストルックアップ(配列ルックアップ)とセットルックアップ(ハッシュルックアップ)の対比:
配列ルックアップ、1つずつ尋ねる-------------》 O(n)
ハッシュルックアップ、ハッシュ関数----- --------》 O(1)
ここに画像の説明を挿入
補足:ツリー構造
ここに画像の説明を挿入

2.3Dict辞書の基礎となるデータ構造は何ですか

辞書とセットは同じで、どちらもハッシュ構造それは単なる付加価値です


総括する

データ構造は非常に重要なので、必ずコードを追加してください。

おすすめ

転載: blog.csdn.net/HG0724/article/details/112210149
おすすめ