Pythonメタグループとリスト、集合と辞書の詳細


一、メタグループとリスト
メタグループは、作成されると変更できないため、シーケンスタイプの中で比較的特殊なタイプです.Pythonのメタグループはカンマとカッコで表されます.シーケンスタイプ
オペレータ
説明
x in s
xがsの要素の場合、Trueを返します.そうでない場合、Falseを返します.
x not in s
xがsの要素の場合、Trueを返します.そうでない場合、Falseを返します.
s + t
接続sとt
s*nまたはn*s
シーケンスsをn回コピー
s [ i ]
インデックス、シーケンスのi番目の要素を返す
s [ i : j ]
スライスして、シーケンスsのi番目からj番目の要素を含むサブシーケンス(j番目の要素を含まない)を返します.
s [ i : j : k ]
ステップスライスし、シーケンスsのi番目からj番目の要素を含むjをステップ数とするサブシーケンスを返す
len(s)
シーケンスsの要素個数(長さ)
min(s)
シーケンスsの最小要素
max(s)
シーケンスsの最大要素
s.index(x[,i [ ,j ] ])
シーケンスsにおいてiからjの位置に初めて要素xが現れる位置
s.count(x)
シーケンスsにxが現れる合計回数
>>> a = "cat","dog","tiger","human"
>>> a
('cat', 'dog', 'tiger', 'human')

>>> b = ("red",0x001100,"blue",a)
>>> b
('red', 4352, 'blue', ('cat', 'dog', 'tiger', 'human'))

>>> b[2]
'blue'

>>> b[-1][2]
'tiger'

リストメソッド
方法
説明
list.append(s)
要素xをリストの末尾に追加
list.extend(L)
リストLのすべての要素をリストの末尾に追加
list.insert(index,x)
リスト指定位置indexに要素xを追加する
list.remove(x)
最初に表示された指定要素をリストから削除
list.pop([index])
リスト・オブジェクトの指定した場所の要素を削除して返します.
list.clear()
リスト内のすべての要素を削除しますが、リストオブジェクトは保持されます.
list.index(x)
戻り値xの最初の要素の下付き
list.count(x)
指定した要素xのリストへの出現回数を返す
list.revrse()
リスト要素をその場で逆順序にする
list.sort()
リスト要素をその場でソート(昇順、降順)
list.copy()
リスト・オブジェクトの浅いコピーを返します
注意:listを除くcopy()以外は、他に新しいリストは生成されず、リストのIDも変更されません
リスト導出式[新しい要素式 or 一時変数 in 反復可能オブジェクト if 条件式]
>>> multiples = [i for i in range(30) if i % 3 is 0]
>>> print(multiples)
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

>>>[x*x for x in range(6)  if x % 2 == 0]
[0,4,16]

>>> x = [3,5,3,7]
>>> [x.index(i) for i in x if i == 3]
[0, 0]


二、集合と辞書
  • 集合データ型は、順序のない単純なオブジェクトの集約であり、集合中の要素は
  • を繰り返さない.
  • Python集合データ型は、可変集合オブジェクト(set)と可変集合オブジェクト(frozenset)の
  • を含む.
  • 集合の定義{x 1,[x 2,...,xn]}
  • {}は空の辞書を表します.辞書もカッコで定義されているので、空セットはset()
  • です.
  • コレクションの要素は繰り返してはいけません.要素タイプは固定データタイプのみです.たとえば、整数、浮動小数点数、文字列、メタグループなどです.リスト、辞書、コレクションタイプ自体は可変データタイプであり、コレクションの要素としては現れません.

  • 例:アセンブリオブジェクトの作成例
    >>> {1,2,1}
    {1, 2}
    >>> {1,'a',True}
    {1, 'a'}
    >>> {1.2,True}
    {1.2, True}
    >>> set()
    set()
    >>> set('Hello')
    {'o', 'H', 'e', 'l'}
    

    例:集合中の要素の判断例
    >>> s = set('Hello')
    >>> 'h' in s
    False
    >>> 'o' not in s
    False
    

    集合要素がユニークであるため,集合タイプを用いて重複要素をフィルタリングすることができ,set(x)関数を用いて集合を生成することができる.
    >>> w = set('apple')
    >>> w
    {'e', 'a', 'p', 'l'}
    
    >>> v = set(("cat","dog","tiger","human"))
    >>> v
    {'cat', 'tiger', 'human', 'dog'}
    

    コレクションタイプには10個のオペレータがあります
    オペレータ
    説明
    S-TまたはS.difference(T)
    集合Sに含まれるが集合Tに含まれない要素を含む新しい集合を返す
    S-=TまたはS.difference_update(T)
    集合Sに含まれるが集合Tに含まれない要素を更新する
    S&TまたはS.intersection(T)
    集合SとTの要素を含む新しい集合を返す
    S=&TまたはS.intersection_update(T)
    集合Sを更新し、集合SとTの要素を同時に含む
    S^Tまたはs.symmetric_difference(T)
    集合SとTの要素を含む新しい集合を返しますが、同時に含まれる要素は含まれません.
    S^=Tまたはs.symmetric_difference_update(T)
    集合SとTの要素を含むが、同時に含まれる要素を含まない集合Sを更新する
    S|TまたはS.union(T)
    SとTのすべての要素を含む新しいセットを返します.
    S|=TまたはS.update(T)
    セットSを更新し、SとTのすべての要素を含む
    S<=TまたはS.issubset(T)
    SがTと同じまたはSがTのサブセットである場合、Trueを返します.そうでない場合、Falseを返します.Sを使用できます.
    S>=TまたはS.issuperset(T)
    SがTと同一またはSがTのスーパーセットであればTrueを返し,そうでなければFalseを返し,S>TでSがTの真のスーパーセットであるか否かを判断することができる.
    上記オペレータは、集合タイプの4つの基本操作を表し、交差(&)、並列(|)、差分(-)、補完(^)、操作ロジックは数学的定義と同じである
    例:集合の演算例
    >>> s1 = {1,2,3}
    >>> s2 = {2,3,4}
    >>> s1|s2
    {1, 2, 3, 4}
    >>> s1&s2
    {2, 3}
    >>> s1.intersection(s2)
    {2, 3}
    

    集合タイプには10の操作関数またはメソッドがあります.
    関数またはメソッド
    説明
    S.add(x)
    データ項目xがセットsにない場合
    S.clear(x)
    Sのすべてのデータアイテムを削除
    S.copy()
    セットSのコピーを返す
    S.pop()
    セットSの要素の1つをランダムに返し、Sが空の場合、KeyError異常が発生する
    S.discard(x)
    xが集合Sにある場合は、その要素を除去し、xが存在しない場合はエラーを報告しない
    S.remove(x)
    xが集合Sにある場合、その要素は除去され、KeyError異常が発生しない
    S.isdisjoint(T)
    集合SとTに同じ要素がない場合はTrueを返す
    len(S)
    集合S要素の数を返す
    x in S
    xがSの要素の場合はTrueを返し、そうでない場合はFalseを返します.
    x not in S
    xがSの要素でない場合はTrueを返し、そうでない場合はFalseを返します.
    辞書の種類が未完で続きます...