python-データ型のリスト


List              , python             ,                   。    、  、            、  、   。

(一)リストの作成(1)リストは[]であり,内部要素間をカンマで区切る.(2)リストには,メタセット,辞書,リスト,文字列,クラス,組み込み関数などを入れることができる.(3)変数に値を割り当てるようなリストを作成するのは簡単である.リストを手動で(空でも値でもよい)書いて変数を割り当てます.リストはカッコ([])で定義されます.もちろん、ファクトリメソッドで作成することもできます.コード:
>>> alist=[123,"abc",4.56,['inner','list'],7-9j]
>>> anotherList=[None,"something to see here"]
>>> print alist
[123, 'abc', 4.56, ['inner', 'list'], (7-9j)]
>>> print anotherList
[None, 'something to see here']
>>> aListThatStartedEmpty=[]
>>> print aListThatStartedEmpty
[]
>>> list("fool")       #    
['f', 'o', 'o', 'l']

(二)リストの基本操作リストの基本操作:削除変更(1)読み取り(アクセスリストの値):リストのスライス操作は文字列のように;[スライス](Slice)オペレータ([])は、インデックス値またはインデックス値の範囲で使用されます.
>>> lista=[1,2,3,4]
>>> print lista[0]
>>> print lista[-1]
>>> print lista[1]
>>> print lista[-2]

(2)修正(リストの更新):等号の左側にインデックスまたはインデックス範囲を指定することで、1つまたは複数の要素を更新したり、append()メソッドでリストに追加したりすることができます.
>>> lista[0]+=10
>>> lista[0:3]=[3,4,5,6]
>>> lista
[3, 4, 5, 6, 4]


(3)遍歴:
 >>> for i in lista:
 ...     print i


(4)削除:リストの要素を削除するには、削除する要素のインデックスがdel文で使用できることを正確に知っている場合はremove()メソッドを使用します.pop()メソッドにより削除する、リストから特定のオブジェクトを返す.
>>> lista=[1,2,3,4]
>>> del lista[-1]
>>> del lista[0]
>>> lista
[2, 3]
>>> print lista
>>> lista.remove(3)
>>> lista
[2]
>>> listb=["a","b","c","d"]
>>> listb.pop()               #pop      
'd'
>>> listb
['a', 'b', 'c']

(5)増加:append、insert、extend
>>> lista
>>> lista.append("abc")
>>> lista.append([1,2,3])
>>> lista.extend([4,5,6])
>>> lista.insert(1,1000)
>>> lista

注意:extend()メソッドのパラメータは、反復可能なオブジェクトの次のファイルをサポートします.
>>>motd=[]
>>> motd.append("msg of the day")
>>> f=open(r"C:\Users\AA\Desktop\test1.txt","r")
>>> motd.extend(f)
>>> motd
['msg of the day', 'hello world
'] >>> f.close()

(6)集計リスト:
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a+b


(7)リストのスライス操作:
print str[0:3]    #             
print str[:]      #           
print str[6:]     #           
print str[:-3]    #                
print str[2]     #       
print str[-1]    #         
print str[::-1]   #                 
print str[-3:-1]  #                   
print str[-3:]    #           
print str[:-5:-3]  #    

詳細:リストの下には、beg(開始下)、end(終了下)、delta(変化量)の3つのパラメータがあります.deltaが0未満の場合、begのデフォルトはlen(array)-1、endのデフォルトは先頭の前です.deltaが0より大きい場合、begのデフォルトは0で、endのデフォルトは最後の後です.deltaが指定されていない場合:deltaのデフォルトは1です.
注意:リストスライスは、元のリストと同じスペースではないリストのコピーを生成します.スライスによって生成されるサブシーケンス要素は、ソース版のコピーです.したがって、スライスは浅いコピーです.
>>> x=[1,2,3]
>>> y=x[:]
>>> x[0]=-1
>>> y
[1, 2, 3]

スライスの書き込み:
>>> x=[1,2,3,4,5]
>>> x[2:0]=[990]
>>> x
[1, 2, 990, 3, 4, 5]
>>> del x[2:3]
>>> x
[1, 2, 3, 4, 5]
>>> del x[3:2]     #  from>> x
[1, 2, 3, 4, 5]

(三)リストの演算子:len(list)、+、*、in、遍歴
>>>a=[1,2,3]
>>>len(a)
3
>>>[1,2,3]+[4,5,6]
[1, 2, 3, 3, 4, 5]
>>>['a']*3
['a', 'a', 'a']
>>>3 in a
True
>>>
>>> for i in [1,2,3]:print i
...
1
2
3

(四)リストの関数と方法(1)リスト統計
>>>[2,4,5,4,4,4,4].count(4)
5

(2)リストindex(value,start,end)start endが閉区間
a=[2,3,4,'b']
a.index('b')
a.index('b',2)
a.index('b',4)
a.index('b',1,5)

解釈:a.index(‘b’,1,5)はaから要素bの位置を検索し、インデックス1の位置から1を含み、インデックス位置5まで位置5注を含まない:index()は1つの要素がlistに存在するかどうかを検査するのは良い考えではありません.存在しないとエラーが発生するからです.まずinメンバー関係オペレータ(またはnot in)でチェックし、index()でこの要素の場所を見つける必要があります.コード(indexエラーを回避):
>>> for i in ['compact disc', 45, '8-track tape']:
...     if i in music_media:
...         print music_media.index(i)
0
1
2

(3)リストpopは-pop(index)を削除し、indexはデフォルトで最後の要素のインデックスを書かず、インデックスを書くことができる
>>> a=range(10)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print a.pop()
9
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> print a.pop(0)
0
>>> a
[1, 2, 3, 4, 5, 6, 7, 8]

(4)Cmp:リスト比較、等しいは0を返して、1を返して、1を返しますより小さくて-1を返します
>>> a=[1,2]
>>> b=[1,2,3]
>>> cmp(a,b)
-1
>>> a=[]
>>> b=[]
>>> cmp(a,b)
0 

(5)リストreverse()-リストの逆出力はソートされません
>>> a=[3,4,5,6,7,8,9]
>>> a.reverse()
>>> a
[9, 8, 7, 6, 5, 4, 3]

(6)リストsort()-リストソート
>>> a=[3,4,5,6,7,8,9]
>>> a.sort()
>>> a
[3, 4, 5, 6, 7, 8, 9]

Sorted:
>>> a=[1,-1,-2,4,-3,3]
>>> b=sorted(a)
>>> print b
[-3, -2, -1, 1, 3, 4]
>>> print a
[1, -1, -2, 4, -3, 3] 

注意:オブジェクトの値を変更できる可変オブジェクトのメソッドは、値を返しません.sort()、extend()、reverse()などの可変オブジェクトを使用する場合は、これらの操作はリスト内で実行されます.つまり、既存のリストの内容は変更されますが、値は返されません.はい、これに対して、文字列メソッドには確かに戻り値があります.
4、総合リストの導出(リスト導出)[expr for iter_var in iterable]この文の核心はforループであり、iterableオブジェクトのすべてのエントリを反復する.前のexprはシーケンスの各メンバーに適用する、最後の結果値は式のリストである.反復変数は式の一部である必要はない.[expr for iter_var in iterable if cond_expr](1)for後ifを先に実行し、その後実行した結果をlistに入れる(2)2つのforであれば左のforを先に実行し、右のforを実行し、実行した結果をリストに入れる
>>> [x for x in range(1,10,2)]
[1, 3, 5, 7, 9]

>>> [x**2 for x in range(1,10,2)]
[1, 9, 25, 49, 81] 

>>> [i for i in range(20) if i%2==0]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 

d = {'x': 'A', 'y': 'B', 'z': 'C' }
print [k + '=' + v for k, v in d.iteritems()] 

例1:マトリクス転置:
a=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
print [ [j[i] for j in a] for i in range(3)] 

以下を例として解析する:a=[[1,2],[4,5]]print[[j[i]for j in a]for i in range(2)]解析:for i in range(2)--->i:0--->第1サイクルfor j in a:---第1回:[1,2]1,2--->[1]for j in a:---第2回:[4,5]4,5--->[1,4]
for i in range(2)--->i:1--->第2サイクルfor j in a:---第1回:[1,2]1,2--->[2]for j in a:---第2回:[4,5]4,5--->[2,5][1,4],[2,5]]
例2:削除リストの3,6,9,12
a=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
print [ [i[j] for j in [1,2]]for i in a]