Python:データ型listの基本操作、listネスト配列の概要


北京図霊学院劉大拿https://study.163.com/course/introduction.htm?courseId=1004987028
追加ソース:Python-廖雪峰https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000
pythonには4つのデータ構造があります
  • リスト:list=[1,2,3,4,’one’,‘two’
  • 辞書:dict={‘a’:123,’b’:’something’}
  • 集合:set={‘apple’,‘pear’,’apple’}
  • タプル:tuple=(123456,'hello')
  • ここでlistの基本的な操作をまとめます.まずリストの作成についてです.
    # 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)
    
    <class 'list'>
    []
    <class 'list'>
    [100]
    <class 'list'>
    [2, 3, 1, 4, 6, 4, 6]
    <class 'list'>
    []

    リストの共通アクション
  • アクセス
  • インデックスを使用
  • リストの位置は0から
  • スライス操作
  • リストの任意のセグメントの切り取り
  • list[x:x]


  • 下付きアクセスリストの例
    #            , 0    
    l = [3,2,1,4,6,3,2]
    print(l[3])#              
    print(l[0])
    
    4
    3

    スライス操作の例
    リストをスライスする場合、左の下付きスケール値を含み、右の下付きスケール値を含まず、半開半閉区間に属する[x:x]の範囲を定義します.
    l = [3,2,1,4,6,3,2]
    #           
    print(l[1:4])
    #        ,    ,        0,           1,            
    print(l[:])#        
    print(l[:4])#   5        (    5   )
    print(l[2:])#   3        (   3   )
    
    [2, 1, 4]
    [3, 2, 1, 4, 6, 3, 2]
    [3, 2, 1, 4]
    [1, 4, 6, 3, 2]

    リストをスライス操作する場合、選択した要素の成長幅はlist形式で定義できます(左区間:右区間:成長幅)
    l=[1,2,3,4,5,6,7,8]
    #           ,       1
    print(l[1:6:1])
    
    [2, 3, 4, 5, 6]
    
    #      1     ,     
    print(l[1:6:2])
    
    [2, 4, 6]
    
    #         ,             
    print(l[2:10])
    
    [3, 4, 5, 6, 7, 8]
    
    #    ,         
    #    ,         ,      -1
    #   :             -1

    スライスの負数を下にする
    リストをスライスする場合、その増加幅は負数であってもよく、負数の場合、リスト内のすべての要素の位置計算順序は右から左であり、開始位置値は-1である.
    l=(1,2,3,4,5,6,7,8,9)
    print(l)
    #         ,              。
    print(l[-2:-4])
    print(l[-4:-2])#    ,              
    
    #                ,           
    #       list             
    print(l[-2:-4:-1])
    print(l[-3:-5:-1])
    
    (1, 2, 3, 4, 5, 6, 7, 8, 9)
    ()
    (6, 7)
    (8, 7)
    (7, 6)

    スライス操作は新しいlistを生成することです
    変数またはデータの一意の決定番号を表示する機能を内蔵する関数id()
    # id    
    a = 100
    b = 200
    print(id(a))
    print(id(b))
    
    c = a
    print(id(c))
    
    #   a c      ,   a        c  
    #   ,        ,   ?
    a = 101
    print(a)
    print(c)
    
    93941189949760
    93941189952960
    93941189949760
    101
    100
    #   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)
    
    
    140226763582408
    140226318124808
    140226318124808
    [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]

    リスト内の要素のデータ型も異なります.たとえば、次のようにします.
     L = ['Apple', 123, True]

    リストには、次のような別のリストが含まれます.
    s = ['python', 'java', ['asp', 'php'], 'scheme']
    len(s)
    
    4

    リスト:sには4つの要素しかありません.このうちs[2]はもう1つのリストであり、分割して書くと理解しやすくなります.
    p = ['asp', 'php']
    s = ['python', 'java', p, 'scheme']

    phpを手に入れるにはp[1]またはs[2][1]と書くことができるので、sは2次元配列と見なすことができ、3次元、4次元......配列も似ているが、あまり使われていない.
    リストの要素が1つもない場合は、空のリストです.その長さは0です.
    L = []
    len(L)
    
    0