Python:メタグループとリスト

2708 ワード

1.1タプル
メタグループはカッコで表され、カッコ内の要素は「,」で区切られます.括弧の中でメタグループ要素か数値かを区別するために、メタグループに1つの要素しかない場合は、要素の後に「,」を付けて悩みを避ける.注意:メタグループは可変のオブジェクトであり、メタグループが作成された後、各インデックスが指す参照オブジェクトを変更することはできません.インデックス番号で要素の値を変更するとエラーが表示されます.例:
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
tup1 = () #     
tup1 = (50,)  #          

1.1.1メタグループの関連操作
       1. Unpacking要素、すなわち要素をすばやく分割し、次のように操作します.
                    
number = (12,13,14)     #packing
a,b,c = number          #unpacking                 
print('a=',a,'b=',b,'c=',c)

>>>a= 12 b= 13 c= 14

       2. スライス演算
       3. ソート、sorted()関数で完了
構文:sorted(tuple[,key][,reverse])
reverse:デフォルトはFalse昇順、Trueは降順
key:キーワード、キーワードによるソートがある場合
1.2リストの基本操作
リストは中かっこで表され、メタグループとほぼ一致しますが、リストの要素は可変です.つまり、[演算子指定インデックス番号]で要素値を変更できます.
1.2.1リストに関する方法
  • append(x):リストの最後の
  • に要素xを追加する
  • extend(t):反復可能なオブジェクトtをリストの最後に追加する(一般的にリストに要素を挿入するために使用される)
  • insert(i,x):xをインデックス番号iでリストに挿入する(一般的に2つのリストリンクに使用される)
  • remove(x):del s[i]と同じ
  • xを削除
  • pop([x]):インデックス値iで要素を削除して返し、iが指定されていない場合は最後の要素
  • を削除して返す.
  • s[i]=x:インデックス番号iの要素に
  • を再割り当て
  • clear():すべての要素を消去
  • リスト・オブジェクトが提供するメソッド:
  • reverse():シーケンス要素をすべて
  • に反転
  • count(x):シーケンス要素xの出現回数
  • index(x):xが初めて現れるインデックス番号
  • 1.2.2リストのソート
             list.sort(key,reverse =None)
    key:キー、節約可能
    reverse=Noneは昇順、Trueは降順
    注意:メタグループはsort()を使用できません.そうしないと、エラーが発生します.リストはsorted()を使用することもできますが、sorted()とsort()は異なり、sorted()はソート後のコピーを返し、元のリストはソートされず、sort()は直接元のリストをソートします.
    1.2.3リスト導出式
    Pythonは、1つ以上の反復器を集約し、forサイクルを条件としてテストすることができる導出式を提供します.
    構文は次のとおりです.
    [式for item in反復可能(すなわちリスト)]
    [式for item in反復可能if式]
    リストの導出:
                        
    alist = []#   
    for itemin     :
        if      :
            alist.append(item)

    例:
                        
    numA = []
    for item inrange(10,50):
        if(item % 7== 0):
            numA.append(item)
    
    print('10~50 7     :',numA)
    
    >>>10~50 7     :[14, 21, 28, 35, 42, 49]

    5.3リストコピーの問題について
    リストのコピーには、「浅いコピー」と「深いコピー」の2種類があります.
    浅いレプリケーションには、次のようなレプリケーション方法があります.
  • =付与文:data=[15,23,44];number = data
  • *演算子
  • スライス
  • copyモジュールのcopy()方法:copy.copy(x) 

  • 深くコピーする方法はcopyモジュールのdeepcopy()方法です
      
    注意:浅いコピー時のcopy()メソッドを使用してコピーされるのは、num 2=num 1のオブジェクトの参照です.copy()ではnum 1の変更はnum 2に影響しませんが、num 2の変更はnum 1に影響します.deepcopy()を深くコピーした場合、num 1とnum 2は独立したオブジェクト参照であり、num 1を変更してもnum 2を変更しても相互に影響しません.