Pythonのスライス3日目

あなたは、スライスと呼ばれる--Pythonリストのいくつかの要素に対処することができます。

まず、使用します。

  スライスを作成するには、使用される最初の要素のインデックスと最後の要素を指定することができます。

  それが第2インデックス要素の前面に到達した後、機能範囲()のように、Pythonは停止します。

  出力するリストの最初の3つの要素、出力要素0,1および2である、0から3までのインデックスを指定します。

以下は一例であり:
L = [ ' '' xiaohei '' xiaobai '' jaojun ' ] プリント(L [0 :. 1]) スライスに関係なく、端部の気、後ろの要素が含まれていない プリント(Lの[します: 2]) コロンがゼロの一番代表から、書き込みされていない前に、 プリント(Lの[1:]) コロンの後には、代表の最後端から、書き込まない プリント(Lの[:)] #はプリント(L)と等価であるが

第二に、スコープ:

  スライス値のインデックス値を使用することができます限り、使用することができます;:文字列、タプルのリストを

= S ' ABCDEFG ' 
プリント(Sの[:3]) 結果が'ABC'である 
S2 = ' 1234567 ' 
プリント(S2 [:: - 1]) スライス工程、負ならば、7654321前方後方から採取
プリント(S2 [-1:-5:-2]) 後方撮影し、値の結果として分離:75

メモリアドレスのリストについては、第三に、演習

題さは、すべての奇数削除 
リー= [1,1,2,3,4,5,6,7,8,9 ]
 :以下の方法間違った方法
のための I 李:
     IF!I%2 = 0を:
        li.remove(I)
プリント(Li)と
 #の印刷結果である[1、2、4、6、8] 理由:混乱の添字をもたらす最初の数、屈折率変化、除去後の
#1 サイクル要素の内部が混乱の添字につながることができたときに、リストを削除しないでください
#のソリューション:2つのリスト、サイクルLI2、たLi1の削除の取得


方法以下は、正しい方法である: 
LI2 = [1,1,2,3,4,5、 6,7、8,9 ]
 のために私がLI2:
     IF I = 2%!0:
        li.remove(I)
を印刷(Li)と


LI2 =リーを書き込むことができません。Liは、メモリアドレスに格納されたメモリアドレスから対応する要素を見つけるために、同じメモリアドレス、およびLiのに対応するLI2 
LI2 =李#の結果LI2李と同じメモリアドレス
を印刷李メモリアドレス:、IDリチウム(Li))
 プリント" LI2メモリアドレス:" 、ID(LI2))
LI2 =リー[:] #のミクロトームは、新しいリストを生成するために対応する、異なるメモリ・アドレス・
プリント" 李メモリアドレス:" 、ID(リー))
 プリント" LI2メモリアドレス:"、上述したID(LI2))

 

第四に、シャローコピー、深いコピー

= L [12,3,4 ] 
L2 = Lの
l.append(' 456 ' 
l2.remove( 12でプリント(L2)

インポートコピー
stus = [ ' ABC '' xiaohei '' ABC2 ' ] 

stus1 = stus 浅いコピーは、メモリアドレスが変更されていない 
[:] stus2 stus = メモリアドレスを変更し、ディープコピーを、互いに独立 
stus3 = copy.deepcopy(stus) ディープコピー、コピー・モジュールは、導入する必要が


L1 = [ 暁を'xiaohei ' ' xiaobai ' ' jaojun ' ' Xiaolei ' ]
 プリント(L1 [0 :. 6 :. 1]) 一枚ずつにかかる
プリント(L1 [0:。6:2]) ステップ2、すべてのn-1個番号札を取ります

 

おすすめ

転載: www.cnblogs.com/candysalty/p/10974779.html