Python基礎練習——内蔵データ構造(リストリストリスト)

41961 ワード

組み込みデータ構造(変数タイプ)
  • list
  • set
  • dict
  • tuple##list(リスト)
  • シーケンスによるデータのセット
  • 作成リスト
  • 空のリスト

  • In [1]:
    # 1,      
    l1 = []
    # type     ,          
    print(type(l1))
    print(l1)
    
    # 2.        
    l2 = [100]
    print(type(l2))
    print(l2)
    
    # 3.     ,    
    l3 = [2,3,1,4,6,4,6]
    print(type(l3))
    print(l3)
    
    # 4.   list()
    l4 = list()
    print(type(l4))
    print(l4)
    
    
    []
    
    [100]
    
    [2, 3, 1, 4, 6, 4, 6]
    
    []
    

    リストの共通アクション
  • アクセス
  • 下付き操作(インデックス)
  • を使用
  • リストの位置は0から
  • である.
  • スライス操作
  • リストの任意のセグメントの切り取りl[:]

  • In [4]:
    #       
    l = [3,2,1,4,6,3,2]
    
    print(l[3])
    
    4
    

    In [5]:
    #     
    #        ,        ,         
    print(l[1:4])
    
    #        ,    ,        0,            ,            
    print(l[:])
    print(l[:4])
    print(l[2:])
    
    [2, 1, 4]
    [3, 2, 1, 4, 6, 3, 2]
    [3, 2, 1, 4]
    [1, 4, 6, 3, 2]
    

    In [6]:
    print(l)
    #           ,       1
    print(l[1:6:1])
    
    #      1     ,     
    print(l[1:6:2])
    
    #         ,             
    print(l[2:10])
    
    #    ,         
    #    ,         
    #   :             -1
    
    [3, 2, 1, 4, 6, 3, 2]
    [2, 1, 4, 6, 3]
    [2, 4, 3]
    [1, 4, 6, 3, 2]
    

    In [13]:
    #        
    print(l)
    #         ,              
    #      ,              
    print(l[-2:-4])
    print(l[-4:-2])
    #              ,           
    #       list             
    print(l[-2:-6:-1])
    
    [3, 2, 1, 4, 6, 3, 2]
    []
    [4, 6]
    [3, 6, 4, 1]
    

    スライス操作は新しいlistを生成することです
  • は、変数またはデータの一意の決定番号
  • を表示する関数idを内蔵する.
    In [14]:
    #   id                             
    l = [3,4,56,76,32,21,43,5]
    ll = l[:]
    lll = ll
    #     id   ,                       
    #   ,               ,       ,            
    print(id(l))
    print(id(ll))
    print(id(lll))
    
    #   id  ,ll lll      ,      
    l[1] = 100
    print(l)
    print(ll)
    
    ll[1] = 100
    print(ll)
    print(lll)
    
    2192643634696
    2192625806024
    2192625806024
    [3, 100, 56, 76, 32, 21, 43, 5]
    [3, 4, 56, 76, 32, 21, 43, 5]
    [3, 100, 56, 76, 32, 21, 43, 5]
    [3, 100, 56, 76, 32, 21, 43, 5]
    

    List(リスト)
  • 1.変更リスト操作
          [    ] =   
  • 2.削除リスト操作
      del     [    ]
  • 3.シーケンス加算
        :   =   1 +   2
        :2         
        : +              
  • 4.リスト乗算
        :    =   1 *   
        :     N       
        :        
  • 5.メンバーシップ演算
        :    in   
        :           
         :   
    
        :    not in   
        :             
         :   
  • In [15]:
    # del   
    a = [1,2,3,4,5,6]
    del a[2]
    print(a)
    
    [1, 2, 4, 5, 6]
    

    In [18]:
    # del   
    #     del  ,id         ,            list
    a = [1,2,3,4,5,6]
    print(id(a))
    del a[2]
    print(id(a))
    print(a)
    
    2192643992904
    2192643992904
    [1, 2, 4, 5, 6]
    

    In [19]:
    #           
    a = [1,2,3,4,5]
    b = [5,6,7,8,9]
    d = ['a', 'b', 'c']
    c = a + b + d
    print(c)
    
    [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 'a', 'b', 'c']
    

    In [20]:
    #         
    #             
    #     n       
    a = [1,2,3,4,5]
    b = a *3
    print(b)
    
    [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
    

    In [21]:
    #       
    #             list  
    a = [1,2,3,4,5,6]
    b = 8
    
    #c         
    c = b in a
    print(c)
    
    b = 4
    print(b in a)
    
    False
    True
    

    In [22]:
    # not in 
    a = [1,2,3,4,5]
    b = 9
    
    print(b not in a)
    
    True
    

    リストの遍歴
  • 1.for ... in
      for i in   :
      print(i)
  • を巡る
  • 2.whileサイクル
      length = len(  )
      i = 0
      while i < length:
          print(  [i])
          i += 1
  • 3.二層リストループ
         = [[ 1, 2],[ 1, 2],[ 1, 2]...]
    
        : for   1,  2 in   :
    
                        1   2
  • In [26]:
    # for in list
    b = ["I love wangxiaojing"]
    
    for i in b:
        print(i)
    
    I love wangxiaojing
    

    In [27]:
    #       
    
    #a      ,       
    a = [["one", 1], ["two", 2], ["three", 3] ]
    
    for k,v in a:
        print(k, "--", v)
    
    one -- 1
    two -- 2
    three -- 3
    

    In [35]:
    # while    list
    #     while  list
    l = [1,2,3,4,5,6]
    length = len(l)
    i = 0
    while i < length:
        print(l[i],end=',')
        i += 1
    
    1,2,3,4,5,6,

    リストの内容:list content
  • 簡単な方法でリスト
          -   :[[   for [   in   ]
          -   : [   for    in        ]
          -   :[[  1+  2 for   1 in   1 for   2 in   2]
  • を作成する
    In [36]:
    # for   
    a = ['a', 'b', 'c']
    #  list a    list b
    #         ,    a    ,       b 
    b = [i for i in a]
    print(b)
    
    ['a', 'b', 'c']
    

    In [37]:
    #  a       10,     list
    a = [1,2,3,4,5]
    #  list a    list b
    #         ,    a    ,       b 
    b = [i*10 for i in a]
    print(b)
    
    [10, 20, 30, 40, 50]
    

    In [38]:
    #        list          
    #       a,      a          b
    
    a = [x for x in range(1,35)] #   1 34     
    #  a              b
    b = [m for m in a if m % 2 == 0]
    print(b)
    
    [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
    

    In [39]:
    #          
    #      a,b
    a = [i for i in range(1,4)] #   list a
    print(a)
    
    b = [i for i in range(100,400) if i % 100 == 0]
    print(b)
    
    #          ,      for    
    c = [  m+n for m in a for n in b]
    print(c)
    
    #            
    for m in a:
        for n in b:
            print(m+n, end="  ")
    print()
    
    
    
    #                  
    c = [  m+n for m in a for n in b if m+n < 250]
    print(c)
    
    [1, 2, 3]
    [100, 200, 300]
    [101, 201, 301, 102, 202, 302, 103, 203, 303]
    101  201  301  102  202  302  103  203  303  
    [101, 201, 102, 202, 103, 203]
    

    リストの共通関数について
    In [40]:
    # len:     
    a = [x for x in range(1,100)]
    print(len(a))
    
    # max:        
    # min:   
    print(max(a))
    
    b = ['man', 'film', 'python']
    print(max(b))
    
    99
    99
    python
    

    In [41]:
    # list:           list
    a = [1,2,3]
    print(list(a))
    
    [1, 2, 3]
    

    In [42]:
    s = "I love wangxiaojing"
    print(list(s))
    
    ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'w', 'a', 'n', 'g', 'x', 'i', 'a', 'o', 'j', 'i', 'n', 'g']
    

    In [43]:
    #  range        list
    print(list(range(12, 19)))
    
    [12, 13, 14, 15, 16, 17, 18]
    

    リスト専用関数
  • append()リストの最後に新しいデータを追加
  • フォーマット:リスト.append(データ)
  • 戻り値:
  • なし
  • 注意:この操作は、既存のリスト
  • を直接変更する.
  • insert()リストで指定した位置にデータを挿入
  • フォーマット:リスト.insert(インデックス、データ)
  • 戻り値:
  • なし
  • 注意:この操作は、既存のリスト
  • を直接変更する.
  • pop()リストから要素を削除
  • フォーマット:リスト.pop()
  • 戻り値:除去された要素
  • 注意:リストの最後の要素
  • を削除します.
  • フォーマット:リスト.Pop(インデックス)
  • 戻り値::除去された要素
  • 注:リストで指定したインデックスの要素
  • を削除します.
  • 既存リスト
  • をどのフォーマットでも直接変更する.
  • remove()指定した値の要素をリストから削除
  • フォーマット:リスト.remove(値)
  • 戻り値:
  • なし
  • 注意:この操作は、既存のリスト
  • を直接変更する.
  • clear()リストをクリア
  • フォーマット:リスト.clear()
  • 戻り値:
  • なし
  • 注意:この操作は、既存のリスト
  • を直接変更する.
  • reverse()リスト反転
  • フォーマット:リスト.reverse()
  • 戻り値:
  • なし
  • 注意:この操作は、既存のリスト
  • を直接変更する.
  • extend()既存リストの最後に新しいシーケンスを追加
  • フォーマット:リスト.extend(シーケンスタイプ)
  • 戻り値:
  • なし
  • 注意:この操作は、既存のリスト
  • を直接変更する.
  • count()は、指定された値がリストに表示される回数を計算します.
  • フォーマット:リスト.count(値)
  • 戻り値:整数
  • copy()既存リストのコピー
  • フォーマット:リスト.copy()
  • 戻り値:新しいリスト