python(一)リストとメタグループ--リスト
20451 ワード
1:list関数機能:文字列(すべてのタイプのシーケンス)に基づいてリストを作成します.
2:基本リスト操作:要素付与、要素削除、スライス付与2.1:要素付与(要素付与としてインデックスでマーク)
2.2:要素の削除(del)
2.3:分片賦値これはすごいですね.信じません.見てください.
すなわち、スライス賦値を用いて、元のシーケンスと等しくないシーケンスを用いてスライスを置き換えることができる.
すなわち、スライス付与文は、既存の要素を置換する必要がなく、新しい要素を挿入することができる
すなわち、スライス付与値は、要素3:リストメソッド呼び出しフォーマット:オブジェクトを削除することもできる.メソッド(パラメータ)は、関数呼び出し3.1:append機能に似ています.リストの末尾に新しいオブジェクトを追加します.
3.2:count機能:ある要素がリストに現れる回数を統計する
3.3:extend機能:新しいリストで既存のリストを拡張する
注意:効果的にはextendは接続操作に似ていますが、extendは元のリストを変更することに相当し、接続操作は元のリストを変更しません.3.4:index機能:リスト内の値の最初の一致する項目のインデックス位置を探し出す
3.5:insert機能:リストにオブジェクトを挿入する
3.6:pop機能:リストの要素(デフォルトは最後)を削除し、その要素の値を返します.
注意:Pythonのリストpopメソッドはスタックを出ます.Pythonにはスタックメソッドはありませんが、appendメソッドを使用して代用できます.popとappendメソッドの操作結果は正反対であり,入スタック(または追加)したばかりの値であれば,最後に得られた結果は元のスタックである.
3.7:remove機能:リスト内の値の最初の一致を削除します.
3.8:reverse機能:リスト内の要素を逆方向に保存します.
3.9:sort機能:元の場所でリストを並べ替え、pythonのデフォルトの並べ替え規則に従って要素を昇順に並べ替える(元のリストを変更)
では、既存のリストを保持しながら、順序付けされたリストを得るにはどうすればいいのでしょうか.アイデア1:
すなわち、sortは既存のリストを変更したが、空の値を返した.アイデア1:間違ったアイデア2:
すなわち、anniversaryのコピーをyに割り当て、yをソートします.アイデア2:正しいアイデア3:
すなわち,anniversaryをyに単純に割り当てるのは役に立たず,このように2つは同じリストを指す.y=anniversary[:]vs y=anniversary考え方3:誤った考え方4:
新しいスキルget->sorted関数は、名前の通り、ソートされます.この関数は任意のシーケンスに適用されますが、常にリストを返します.
3.10:高度なソート(特定の方法でソート)黒板を叩く:compare(x,y)比較関数:x>yで正数を返し、x
sortの他の2つのオプションパラメータ->keyとreverseパラメータkeyは、ソート中に使用される関数をキー関数として指定する必要があります.パラメータreverseは、リストが逆ソートされるかどうかを指定します.
>>> list('zhaoliying')
['z', 'h', 'a', 'o', 'l', 'i', 'y', 'i', 'n', 'g']
2:基本リスト操作:要素付与、要素削除、スライス付与2.1:要素付与(要素付与としてインデックスでマーク)
>>> idol = ['zhaoliying','vs','wuenda']
>>> idol[1] = '?'
>>> idol
['zhaoliying', '?', 'wuenda']
2.2:要素の削除(del)
>>> idol = ['zhaoliying','keer','wuenda','myhuba','shagua']
>>> del idol[4]
>>> idol
['zhaoliying', 'keer', 'wuenda', 'myhuba']
2.3:分片賦値これはすごいですね.信じません.見てください.
>>> idol = list('zhaoliying')
>>> idol[10:] = list('xihuanni')
>>> idol
['z', 'h', 'a', 'o', 'l', 'i', 'y', 'i', 'n', 'g', 'x', 'i', 'h', 'u', 'a', 'n', 'n', 'i']
すなわち、スライス賦値を用いて、元のシーケンスと等しくないシーケンスを用いてスライスを置き換えることができる.
>>> hua =['I','YOU']
>>> hua[1:1] = ['LOVE']
>>> hua
['I', 'LOVE', 'YOU']
>>> shu = [2,8]
>>> shu[1:1] = [4,6,7]
>>> shu
[2, 4, 6, 7, 8]
すなわち、スライス付与文は、既存の要素を置換する必要がなく、新しい要素を挿入することができる
>>> shu = [2,4,6,7,8]
>>> shu[:4] = []
>>> shu
[8]
すなわち、スライス付与値は、要素3:リストメソッド呼び出しフォーマット:オブジェクトを削除することもできる.メソッド(パラメータ)は、関数呼び出し3.1:append機能に似ています.リストの末尾に新しいオブジェクトを追加します.
>>> shu = [2,4,6,7,8]
>>> shu.append('shuyazi')
>>> shu
[2, 4, 6, 7, 8, 'shuyazi']
3.2:count機能:ある要素がリストに現れる回数を統計する
>>> wen =['you','know','that','I','know','you','donnot','know','whther','he','know']
>>> wen.count('know')
4
>>> shu = [[1,1],[1,[1,1]],1,1,1,[1,1,1,[1,1]]]
>>> shu.count(1)
3
>>> shu.count([1,1])
1
3.3:extend機能:新しいリストで既存のリストを拡張する
>>> idol = ['zhaoliying']
>>> biaobai = ['love you']
>>> idol.extend(biaobai)
>>> idol
['zhaoliying', 'love you']
>>> idol = ['zhaoliying']
>>> biaobai = ['love you']
>>> idol + biaobai
['zhaoliying', 'love you']
>>> idol
['zhaoliying']
注意:効果的にはextendは接続操作に似ていますが、extendは元のリストを変更することに相当し、接続操作は元のリストを変更しません.3.4:index機能:リスト内の値の最初の一致する項目のインデックス位置を探し出す
>>> idol = ['mengmengda','liying','baozi','yingbao']
>>> idol.index('liying')
1
3.5:insert機能:リストにオブジェクトを挿入する
>>> shu = [2,4,6,7,8]
>>> shu.insert (5,'shuyazi')
>>> shu
[2, 4, 6, 7, 8, 'shuyazi']
3.6:pop機能:リストの要素(デフォルトは最後)を削除し、その要素の値を返します.
>>> shu = [2,4,6,7,8]
>>> shu.pop()
8
>>> shu
[2, 4, 6, 7]
>>> key = [1,0,7,6]
>>> key.pop(1)
0
>>> key
[1, 7, 6]
注意:Pythonのリストpopメソッドはスタックを出ます.Pythonにはスタックメソッドはありませんが、appendメソッドを使用して代用できます.popとappendメソッドの操作結果は正反対であり,入スタック(または追加)したばかりの値であれば,最後に得られた結果は元のスタックである.
>>> shu = [2,4,6,7,8]
>>> shu.append(shu.pop())
>>> shu
[2, 4, 6, 7, 8]
3.7:remove機能:リスト内の値の最初の一致を削除します.
>>> wen = ['you','know','that','I','know','you','donnot','know']
>>> wen.remove('you')
>>> wen
['know', 'that', 'I', 'know', 'you', 'donnot', 'know']
3.8:reverse機能:リスト内の要素を逆方向に保存します.
>>> lover = ['an','you fool']
>>> lover.reverse()
>>> lover
['you fool', 'an']
3.9:sort機能:元の場所でリストを並べ替え、pythonのデフォルトの並べ替え規則に従って要素を昇順に並べ替える(元のリストを変更)
>>> anniversary = [2017,5,28,23.43,5,29,5.54]
>>> anniversary.sort()
>>> anniversary
[5, 5, 5.54, 23.43, 28, 29, 2017]
では、既存のリストを保持しながら、順序付けされたリストを得るにはどうすればいいのでしょうか.アイデア1:
>>> anniversary = [2017,5,28,23.43,5,29,5.54]
>>> y = anniversary.sort()
>>> print y
None
すなわち、sortは既存のリストを変更したが、空の値を返した.アイデア1:間違ったアイデア2:
>>> anniversary = [2017,5,28,23.43,5,29,5.54]
>>> y = anniversary[:]
>>> y.sort()
>>> anniversary
[2017, 5, 28, 23.43, 5, 29, 5.54]
>>> y
[5, 5, 5.54, 23.43, 28, 29, 2017]
すなわち、anniversaryのコピーをyに割り当て、yをソートします.アイデア2:正しいアイデア3:
>>> anniversary = [2017,5,28,23.43,5,29,5.54]
>>> y = anniversary
>>> y.sort()
>>> anniversary
[5, 5, 5.54, 23.43, 28, 29, 2017]
>>> y
[5, 5, 5.54, 23.43, 28, 29, 2017]
すなわち,anniversaryをyに単純に割り当てるのは役に立たず,このように2つは同じリストを指す.y=anniversary[:]vs y=anniversary考え方3:誤った考え方4:
>>> anniversary = [2017,5,28,23.43,5,29,5.54]
>>> y = sorted(anniversary)
>>> anniversary
[2017, 5, 28, 23.43, 5, 29, 5.54]
>>> y
[5, 5, 5.54, 23.43, 28, 29, 2017]
新しいスキルget->sorted関数は、名前の通り、ソートされます.この関数は任意のシーケンスに適用されますが、常にリストを返します.
>>> sorted('lovehuba')
['a', 'b', 'e', 'h', 'l', 'o', 'u', 'v']
3.10:高度なソート(特定の方法でソート)黒板を叩く:compare(x,y)比較関数:x>yで正数を返し、x
>>> cmp(25,23)
1
>>> cmp(23,25)
-1
>>> cmp(92,92)
0
>>> an = [5,28,5,29]
>>> an.sort()
>>> an = [5,28,5,29]
>>> an.sort(cmp)
>>> an
[5, 5, 28, 29]
sortの他の2つのオプションパラメータ->keyとreverseパラメータkeyは、ソート中に使用される関数をキー関数として指定する必要があります.パラメータreverseは、リストが逆ソートされるかどうかを指定します.
>>> lover = ['huba','dabendan','shagua','andada']
>>> lover.sort(key=len)
>>> lover
['huba', 'shagua', 'andada', 'dabendan']
>>> lover = ['huba','dabendan','shagua','andada']
>>> lover.sort(reverse=True)
>>> lover
['shagua', 'huba', 'dabendan', 'andada']