Pythonアルゴリズムインタビュー第5章


第五章リスト、ディック・シャナリー
インベントリ
💡 順序格納されたシーケンスと変更可能なリスト
入力順序は変わらず,内部は動的に配列されている.
ダイナミック配列?
第七章では詳しく紹介します!
第7章リンク:
リストを使用すると、スタック、キューを使用するかどうかを考慮する必要がなく、スタックとキューで使用可能なすべての演算を同時に提供できます.
リストから最初の要素を取り出すpop(0)はO(n)であるため、キュー演算を使用する際に注意してください.
これにより、Deque(Deque)などのデータ型でパフォーマンスを向上させることができます.
これは第9章で説明しなければならない.
第9章リンク:
リストの使用方法
a = list()

#or

a = []

######append
a = [1,2,3]
a.append(4)
print(a)
### result [1,2,3,4]

#####a.insert
a.insert(3,5) #3번 인덱스에 5를 넣어라
print(a)
### result [1,2,3,5,4]

#####slicing
a[1:3]
print(a)
### result [2,3,5]

##### 리스트의 요소 삭제 (del)
def a[1]
print(a)
### result [1,3,5,4]

##### 리스트의 요소 삭제 (pop)
a.pop(3)
print(a)
### result [1,3,5]
リストのフィーチャー
Pythonのリストには、連続空間に要素の配列を配置する利点と、様々なタイプの接続リストを接続する利点があり、実際にはリストを使用すれば、配列や接続リストは必要なく、機能の強いPythonは元のタイプのデータ型を提供しません.
専制的
💡 PythonのDickShownureとは、キー/値構造からなるDickShownureのこと.
ハッシュテーブルを使用して資料を格納し、複数のタイプのキーをサポートしますが、入力とクエリー部分はO(1)で、非常に効率的です.
ディクシャナリーの使い方
a = dict()

a  = {}

##### 키 value 설정
a = {'key1':'value1', 'key2':'value2', 'key3':'value3'}
print(a)
### result {'key1':'value1', 'key2':'value2', 'key3':'value3'}

##### 새로운 키 value 등록
a['key4'] = 'value4'
print(a)
### result {'key1':'value1', 'key2':'value2', 'key3':'value3','key4':'value4'}

###### 키가 존재하는지 존재하지 않는지에 
for k,v in a.items():
	print(k,v)
### result key1 value1
###				 key2 value2
専制モジュール
1)defaultdictオブジェクト
クエリに存在しないキーの場合は、エラーメッセージは出力されません.
これを基準として、この鍵に対して専用の物品を生成する.
a.collections.defaultdict(int)
a['A'] = 5 
a['B'] = 4
a['C'] += 1
#C에서 에러가 나야겠지만 에러가 나지 않은 체 디폴트인 0에서 1을 더한 1의 value를 가진 아이템이 생성된다.
2)Counterオブジェクト
品物の個数を計算して、ディックシャナリーに戻ります.
a = [1,2,3,4,5,5,5,6,6]

b = a.collections.Counter(a)
print(b)
### result Counter({5:3, 6:2, 1:1, 2:1, 3:1, 4:1})

##### 가장 빈도가 높은 것은?
b.most_common(1)
[(5,3)]
3)OrderedDictオブジェクト
入力値を指定すると、OrderedDictは入力の順序を維持します.