6/20 pythonリストのインデックスとスライス

2361 ワード

pythonのリストタイプには、さまざまなオブジェクトの要素を追加できます.
リストタイプのインデックスとスライス
「リスト」ではインデックスやスライスもできますが、文字単位ではなく要素単位です.
スライスでは、インデックス番号も0から始まります.
 >>>a =  ['2',3,'make']
 >>>a
 ['2',3,'make']
 a[0]  #     0  
 '2'
 >>>a[2]
 'make'
 >>>a[:2]  # Str    ,      :      ,       。
 [2,3]  #       
 a[1:]  #         
 [3,'make']
 >>>a[2][1:3]  #          2   
 'ak'  #2   ,a    2       1   2   。

Listとstrの2種類のデータは、共通の場所があり、シーケンスに属しています(いずれもいくつかのオブジェクトがある順序で並べられています.シーケンスの最大の特徴です).
そのため、似たようなところがたくさんあります.たとえば、インデックスとスライスです.
 >>>lang = "python"
 >>>lang.index("y")  #    "y" lang       。
 1
 >>>lst = ['python','java','c++']
 >>>lst.index('java')  #  java     lst          。
 1

以上で示した文字列インデックスとスライスは、左から始まります.
逆インデックス
もう1つの番号付け方法は、右から、右の最初の番号が-1で、次は-2、-3、...、順番に類推する.
これは文字列、リストなど様々なシーケンスタイプに適用されます.
 >>>lang = "python"
 >>>lang[-1]
 'n'
 >>>lang[-3]
 'h'
 >>>lst = ['python','java','c++']
 lst[-2]
 'java'

右から番号、-1番が右の1番です.しかし、スライスするには、必ず左の数字が右の数字より小さい数字に従う必要があります.例:
 lang = ;python'
 lang[-3:-1]
 'ho'
 lst = ['python','java','c++']
 lst[-3:-1]
 ['python','java']

逆シーケンスのスライスも、開始位置を含むまで、終了位置までの原則に従います.
反転
 >>>ls = [1,2,3,4,5,6]
 ls[::-1]  #  
 [6,5,4,3,2,1]
 >>>ls
 [1,2,3,4,5,6]  #ls         ,             。

文字列に対しても同様に
 >>>lang = 'python'
 lang[::-1]
 'nohtyp'
 >>>lang
 'python'

上記の反転は,intタイプでもlstタイプでも反転した後,元の値は変化しなかった.
pythonでシーケンスタイプを関数で反転します.
 >>> ls = [1,2,3,4,5,6,7,8]
 >>> ls
 [1, 2, 3, 4, 5, 6, 7, 8]
 >>> list(reversed(ls))
 [8, 7, 6, 5, 4, 3, 2, 1]

【list(reversed)】関数で反転シーケンスを返すことができる.
返されるオブジェクトも反復できますが、元のシーケンスオブジェクトが反転しています.
次のようになります.
 >>>list(reversed('abcd'))
 ['d','c','b','a']

リストに関する操作はしばらくこれだけです.