Pythonシーケンスのリスト独自の基本操作
3833 ワード
リストは最も一般的なPythonデータ型で、カッコ内のカンマ区切り値として表示されます.リストがメタグループと異なる(別のページでメタグループを単独で紹介する)と文字列の最大の違いは、リストが可変であり、要素が修正可能であることである.リストの例:a=['a',1,['b']],b=[[[[','b'],'c'],1,''abc]
リスト固有の基本操作は、要素の割り当て、要素の削除、スライスの割り当てです.(備考:この操作は既存のリストの内容を直接変更したものです)
1.エレメントに値を割り当て、リスト内のエレメントの値を直接変更します.
2.要素を削除し、del文で実現
3.分片賦値、分片賦値という機能は比較的に強く、増加、削除、変更のすべての機能を実現することができる.
スライス割り当ては、複数の要素に一度に割り当てることができます.
スライス付与値は、既存のスライスを不等長のスライスで置き換えることができ、右側の長さが左より大きい場合、余分な要素は新しい値を挿入する方法をとる.右の長さが左の長さより小さい場合、元のリストの後ろの要素は削除されます.両辺の長さが等しい場合は、その場で置換します.
上記の方法で延長を続けると、リストの任意の位置に任意の要素を挿入することができ、左の要素の数を0にするだけでよい.
上記の方法で延長を続けると、リスト内の任意の場所の要素を削除できます.
リストをステップ長が1でない操作
リスト固有の基本操作は、要素の割り当て、要素の削除、スライスの割り当てです.(備考:この操作は既存のリストの内容を直接変更したものです)
1.エレメントに値を割り当て、リスト内のエレメントの値を直接変更します.
>>> x=[1,2,'a']
>>> x[0]=['a'] #
>>> x
[['a'], 2, 'a']
>>> x[-1]='b' #
>>> x
[['a'], 2, 'b']
>>> x[10]='d' #
Traceback (most recent call last):
File "", line 1, in
IndexError: list assignment index out of range
2.要素を削除し、del文で実現
>>> x # x 3 , 3
[['a'], 2, 'b']
>>> len(x)
3
>>> del x[1] # x
>>> x
[['a'], 'b']
>>> len(x) # ,
2
>>> del x[10] #
Traceback (most recent call last):
File "", line 1, in
IndexError: list assignment index out of range>>>
>>>x=['a', 2, 'a', 4, 'a', 8, 'a', 7, 'a', 6, 'a', 5]
>>> del x[1:8:2] # ( ),
>>> x
['a', 'a', 'a', 'a', 'a', 6, 'a', 5]
3.分片賦値、分片賦値という機能は比較的に強く、増加、削除、変更のすべての機能を実現することができる.
スライス割り当ては、複数の要素に一度に割り当てることができます.
>>> x=[1,2,3,4]
>>> x[2:]=[5,6]
>>> x
[1, 2, 5, 6]
スライス付与値は、既存のスライスを不等長のスライスで置き換えることができ、右側の長さが左より大きい場合、余分な要素は新しい値を挿入する方法をとる.右の長さが左の長さより小さい場合、元のリストの後ろの要素は削除されます.両辺の長さが等しい場合は、その場で置換します.
>>> x=[1,2,3,4]
>>> y=[5,6,7,8]
>>> x[2:]=y[1:] # 2 , 3 , 1 x
>>> x
[1, 2, 6, 7, 8]
>>> z=['a','b','c']
>>> x[0:1]=z # 1 , 3 , 2 x[0]
>>> x
['a', 'b', 'c', 2, 6, 7, 8]
>>> x[-4:]=z # 4 , 3 , x[-2]
>>> x
['a', 'b', 'c', 'a', 'b', 'c']
>>> x[1:]=z[0:1] # 5 , 1 , x[1]
>>> x
['a', 'a']
>>> x=[1,2,3,4]
>>> x[1:3]=[5,6] # ,
>>> x
[1, 5, 6, 4]
上記の方法で延長を続けると、リストの任意の位置に任意の要素を挿入することができ、左の要素の数を0にするだけでよい.
>>> x=[1,2,3,4]
>>> x[1:1]=[5,5,5] # 3
>>> x
[1, 5, 5, 5, 2, 3, 4]
>>> x[-2:0]=[6,6,6] # 3
>>> x
[1, 5, 5, 5, 2, 6, 6, 6, 3, 4]
上記の方法で延長を続けると、リスト内の任意の場所の要素を削除できます.
>>> x=[1,2,2,3,4,5,6,7,8,9]
>>> x[1:2]=[] #
>>> x
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[1:5]=[] #
>>> x
[1, 6, 7, 8, 9]
>>> x[1:5:2]=[] # 1 , ,
Traceback (most recent call last):
File "", line 1, in
ValueError: attempt to assign sequence of size 0 to extended slice of size 2
リストをステップ長が1でない操作
>>> x=[1,2,3,4]*3
>>> x
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
>>> x[::2]='a'*(len(x)/2) # x 'a'
>>> x
['a', 2, 'a', 4, 'a', 2, 'a', 4, 'a', 2, 'a', 4]
>>> x[-1:-8:-2]=[5,6,7,8] # 4 5,6,7,8 ( )
>>> x
['a', 2, 'a', 4, 'a', 8, 'a', 7, 'a', 6, 'a', 5]