記事のディレクトリ
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辞書の基礎となるデータ構造は何ですか
辞書とセットは同じで、どちらもハッシュ構造それは単なる付加価値です
総括する
データ構造は非常に重要なので、必ずコードを追加してください。!!