資料型分類とset&frozenset

4233 ワード

データ分類
シーケンスタイプ(sequence type)
  • リスト:listクラスのオブジェクト
  • の例:tupleクラスのオブジェクト
  • 範囲:オブジェクト
  • 、範囲クラス
  • 文字列:strクラスのオブジェクト
  • 문자열의 경우 텍스트 시퀀스 타입(text sequence type)이라 부르지만,
    이 역시 시퀀스 타입의 일종이다.
    シーケンスタイプの特徴は、格納値の順序情報(位置情報)が存在することである.
    ターゲットアクション
  • インデックス演算:特定の値を参照する演算
  • s[0], s[1], s[2]
  • スムーズ演算:始点と終点を定義し、それらを参照する演算
  • s[0:3], s[5:9]
    マッピングタイプ(マッピングタイプ)
  • ディックシリーズ:dictクラスのオブジェクト
    マッピングタイプは、格納値の順序や位置情報を記録しないデータ型です.
    このため、インデックスやスライド操作はできません.
  • セットタイプ(settype)
  • セット(set):setクラスのオブジェクト
  • エンベロープ済み:エンベロープクラス内のオブジェクト
    コレクションを表すデータ型
    保存順序は保持されず、重複値の保存は許可されません.
  • set, frozenset
    きほんえんざん

  • ≪コレクション|Assembly|emdw≫:2つのコレクション内のすべての要素のコレクション.

  • ≪差分セット|Difference Set|oem_src≫:あるセットから別のセットの要素のセットを減算します.

  • 交差:2つの集合に共通する要素の集合

  • 対称差セットたいしょうさぶれっと:2つのセットの和セットから交差を減算したセット
    A = {'a', 'c', 'd', 'f'}
     B = {'a', 'b', 'd', 'e'}
    A - B		# A에 대한 B의 차집합
    > {'c', 'f'}
    A & B 		# A와 B의 교집합
    > {'d', 'a'}
    A | B 		# A와 B의 합집합
    > {'e', 'f', 'd', 'a', 'b', 'c'}
    a ^ B 		# A와 B의 대칭 차집합
    > { 'e', 'f', 'b', 'c' }
    例に示すように、{}を使用してコレクションを使用できます.
    set
    A = set(['a','c','d','f'])	# set 함수에 iterable 객체 전달해서 set 생성
     B = set('fdca')			# 문자열도 iterable 객체이므므로 set 생성 가능
     A=B		# 내용 비교
    > False
     'a' in A	
    > True
     'b' not in A
     True
     for c in A & B:
     	print(c, end = ' ')
    > d c f a
    ディック・シャナリーと同じように見えるかもしれませんが、
    この{}内では、キー類であればディック電池となる.
    d = {}
    type(d)
    > <class 'dict'>
    s = set()
    type(s)
    > <class 'set'>
    Frozenset
    A = frozenset(['a','c','d','f'])	# frozenset 함수에 iterable 객체 전달해서 frozenset 생성
    B = frozenset(['a', 'b', 'd', 'e'])			# 문자열도 iterable 객체이므므로 frozenset 생성 가능
    A - B
    > frozenset({'c', 'f'})
    A | B
    frozendset({'e', 'f', 'd', 'a', 'b', 'c'})
    A=B		# 내용 비교
    > False
    'a' in A	
    > True
    'b' not in A
    True
    for c in A & B:
    	print(c, end = ' ')
    > d a 
    set typeで重複が許されない特性の結果を使用します.
    t = [3, 3, 3, 7, 7, 'z', 'z']
    t = list(set(t))
    > [3, 'z', 7]
  • setと凍結setの違い

  • set:可変オブジェクト

  • フリーズセットフリーズセットフリーズセット:可変オブジェクトふへんぶじぇくと
    すなわち、setは新しい値を追加または削除できますが、setを凍結することはできません.
  • しゅうごうえんざん
  • add:要素を追加
  • 廃棄:要素削除
  • update,|=:他のすべてのセットの要素
  • を追加
  • 交点update,&=:他のセットと同じ要素
  • のみを保持
  • 差異update,-=:他のすべてのセットの要素
  • を削除
  • 対称different update,^=:汎用でないものを追加し、残りの
  • を削除
    os = {1, 2, 3, 4, 5}
    os.add(6)		# 추가
    > {1, 2, 3, 4, 5, 6}
    os.discard(1)		# 삭제
    > {2, 3, 4, 5, 6}
    os.update({7, 8, 9})	# 전부 추가
    > {2, 3, 4, 5, 6, 7, 8, 9}
    os &= {2, 4, 6, 8}	# 교집합
    > {8, 2, 4, 6}
    os -= {2, 4}		# 차집합
    > {6, 8}
    os ^= {1, 3, 6}		# 대칭 차집합
    > {1, 3, 8}
    しゅうごうけいさん
    s1 = {x for x in range(1, 11)}
    > {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    s2 = {x**2 for x in s1}
    > {64, 1, 4, 36, 100, 9, 16, 49, 81, 25}
    s3 = {x for in s2 if x < 50}
    > {1, 4, 36, 9, 16, 49, 25}
    set typeは順番に並べない特性です.