第6章シーケンス:文字列、リスト、タプル
シーケンス:メンバーを命じ、それが次のランドマークへのオフセット一つまたは複数のメンバーによってアクセスすることができます。
フォワードインデックス:0〜N-1
リバースインデックス:-N〜-1
オペレーター配列の種類:
SEQ要素は[IND]添字IND得
配列[IND1:IND2] IND 2のセットのすべての要素にIND1添字から得られました
SEQ * exprのシーケンスが繰り返される*回
SEQ1 + SEQ2
かどうかは、配列中[ない] OBJのOBJ要素[ない]配列かどうか
配列要素へのダイレクトアクセス:
>>>プリント( 'フェイ'、 'リアナ'、 'Daylen')[1]
リアナ
一度要素の複数の配列を取得します。
SEQ [START_INDEX:END_INDEX]注:START_INDEXを含むが除く():を含むEND_INDEX
スライシング操作を拡張するステップインデックス:
>>>のS = 'ABCDEFGH'
>>> S [:: -1]#反転動作
'hgfedcba'
>>> S [:: 2]#スペーサーは取ります
'ACEG'
その他のヒント:
インデックス付き値なし
>>>のS = 'ABCDE'
>>> I [なし] +範囲(-1、-len(S)、-1)にするため#本来反転出力、したがって前進-1
...プリント(S [:I])
...
ABCDE
あいうえお
ABC
から
A
プラントシーケンス型変換関数:
リストの反復可能オブジェクトを変換するためのリスト(ITER)
STR(OBJ)は、文字列オブジェクトobjを変換
ユニコード(OBJ)
basestring()関数抽象工場の。これは、コールすることはできません。
タプル(ITER)はイテレータオブジェクトに変換することができるタプルオブジェクトであります
組み込み関数のシーケンス・タイプが用意されています。
引数としてイテレータオブジェクトを受け入れる(ITER)を列挙し、からなる各要素の生成タプルと項目値ITERインデックス値からオブジェクトの列挙オブジェクト(また、イテレータ)を返します
LEN(配列)
指定されたキーは、キーがコールバックの比較のために()メソッドをソートするために渡さなければならない場合、最大(ITER、キー=なし)または最大値(arg0は、arg1に...、キー=なし)は、最大値を返します。
(I)
逆に(配列)は、逆の順序訪問にイテレータを返します。
ソートされた反復可能オブジェクトは、順序付けられたリストを返す受け付ける(ITER、FUNC =なし、キー=なしには、= Falseの逆転ません)
和(配列、INIT = 0)配列の和を返し、オプションのパラメータは、initを
ZIP([IT0、IT1、... ITN])のリストを返し、最初の要素は、第一、第二の組からなるこれらの要素の.....、IT1 IT0ある,,,,等々
文字列:独立した文字、スライス操作を介してアクセス可能な、文字列は不変です
そして、割り当ての文字列を作成します。
>>> aStringの= 'Hello Worldの!'
どのように文字列の値にアクセスするには:
aStringの[0]
aStringの[1:5]#パケットは、左右が含まれていません。
新しい文字列を作成することができ、文字列の値を変更(またはかもしれ一緒に古い文字列の部分を縫い合わせ)
stringモジュール定義済みの文字列:
インポート文字列
>>> string.uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>>にstring.lowercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits
'0123456789'
( '%S%S' %(S [3]、S [20]))。アッパー()#選択された文字を大文字に
............下()
シンボルをフォーマット文字列:
文字フォーマット変換方法
%Cは、文字(ASCIIコード値、または長さの文字列)に変換されます
%のR優先()文字列のreprを変換するための関数
優先STRと%S文字列変換関数()
%D /%iが符号付き10進数に変換しました
%Uは、符号なし10進数を回します
%O符号なし進に変換します
%X / X%(符号なし)符号なし進数(場合X / X代表変換進文字)に変換
%E /%Eは、科学表記法(E / E制御出力E / E)に形質転換します
%F / F%は、浮動小数点(天然のカットオフの小数部分)に変換しました
%G /%G%eおよび%F /%Eおよび%Fの速記
%%出力%
フォーマットオペレータコマンドを支援
シンボルの役割
*幅やポイントの精度を定義します。
- やって左に揃えます
+正のプラス記号(+)の前面に表示
正の前に<Spの>表示スペース
先行ゼロ(「0」)を有するディスプレイ#8進数表示16進数の前に「0X」または「0X」(用途に応じて「X」または「X-」)
フロントディスプレイ番号0「0」の代わりに、デフォルトのスペースを埋めます
%は '%%' 単一 '%'(VAR)は、変数(パラメータ辞書)がマッピング出力します
MN mは小さな全幅を示し、nは小数点以下の桁数は、(可能な場合)であります
文字列のテンプレート:代替
テンプレートの二つの方法の目的:代替()およびsafe_substitute()前者厳密には、与えられているキーに失われました。
1 >>> から文字列インポートテンプレート 2 >>> S =テンプレート(' $ {howManyが} $ {LANG}見積シンボルsがあり' ) 3 >>> 4 >>> 印刷 s.substitute(LANG = ' Pythonの'、howManyが= 3)3つのがあるのPyトーン見積シンボルが 5 >>> 6 >>> 印刷 s.substitute(LANG = ' パイソン' )トレースバック(最新のCA LL最後): 7 ファイル" <STDIN> "、ライン1、中? 8 ファイル" /usr/local/lib/python2.4/string.py "、ライン172 におけるsubstit UTE 9 リターンself.pattern.sub(self.template変換) 10 FのILE 」に/ usr / local / lib / 。。パイソン2 4 /列PY 」、ライン1 6 2、inconvertval = マッピング[名前] 11 KeyError例外:' howManyが' 12 >>> 13 >>> 印刷 s.safe_substitute(LANG = ' Pythonの')があり$ { howManyが} Pythonの引用記号
元の文字列演算子:( R / R)
組み込み関数:
機能の標準タイプ:
CMP()
シーケンス型の関数:
のみ()
MAX()と分()
列挙()
郵便番号()
文字列型の関数:
入力()
STR()
CHR()およびORD()#は、文字の整数パラメータを返します。
パラメータとして#文字は、整数値を返します
組み込みの文字列関数の多くは、ブックP121を参照してください
Unicodeへの紹介:P127書籍
キーポイントの文字列概要:
いくつかの引用符文字を分離し
ます(Pythonなどの文字列データ型、または一般的にPythonで使用される単一引用符または二重引用符Pythonの間の文字列内の文字の連続セット2重引用符は、単一引用符を置くことができます「)と二重引用符(「)。
文字列の実際の内容は、引用符自身のないこれらの単一引用符(「)または二重引用符の間の文字(「)、である。文字列を作成するために、2つの引用符を使用することができるので、ときに、文字列、非常に有益です単一引用符は文字列を作成する場合は、文字列は二重引用符、およびその逆をエスケープする必要はありません、単一引用符に含まれる。
不可分の文字タイプ
専用の文字列リテラル文字列タイプです。ただし、文字自体は型ではないので、文字列は、記憶動作の基本単位である。文字は長さ1の文字列として考慮されるべき
文字列フォーマット操作シンボル
(%)は、定義された文字列を作成するための柔軟な方法からの各種入力に基づいて、ファンクション文字列書式演算子(セクション6.4.1を参照)が設けられていると同様のprintf()を提供します。また、同様の提供しますC / C ++世界の書式設定操作のインタフェース。
トリプル引用符
セクション6.7.2内部では、我々は3つのマークを導入し、3つの引用符で囲まれた文字列は、このような特殊文字は、そのようなタブキーとしてキャリッジリターンや改行を含むことができる。引用符で囲まれた文字列は、3つの単一引用符(「」「)のそれぞれの側にある3つです両側に3個ずつ、または二重引用符(「」「)定義。
各特別な使用意向6.4.2のための元の文字列の文字列は、我々は元の文字列を記述し、それらはバックスラッシュで特殊文字をエスケープしていない特性を議論する。この機能は、元の文字を作りますシリーズは、このような正規表現を定義するときなどの機会の文字列の本来の意図を、必要とする人に最適です。
Pythonの文字列はNULではないか、「\ 0」でCプログラミングの主要な問題を終わらせるために、あなたが戻って文字列を訪れたということですあなたは自動メモリ管理を.Python場合にのみ、あなたはターミネータが、文字列の末尾に追加されていないに発生する空間、またはNUL「\ 0」(ASCII値0)に属していないが、また、Cにこれは.PythonはNUL-終わりではない文字列を削除するには、小さな負担やトラブルであるので、あなたはターミネータを追加するかどうかを心配する必要はありません。文字列は何も、あなたが定義したものだけを含んでいません。
リスト:ポップはあなたにも、更新を挿入することができ、他の操作を実行し、ソート逆EMPT要素だけで操作を削除
リストを作成して割り当てます
aListの= [123、 'ABC']
アクセスリストの要素
aListの[0]
更新リスト
alistが[2] = 'フロート代替'
どのように私は要素またはリスト自体のリストを削除します(削除とデルのインデックスでインデックスを知っているかわかりません)
アリスターの[1]
aList.remove(123)
演算子
標準タイプの演算子:
オペレーター配列の種類:
注:オブジェクトのリストをスライスが返されます
会員事業者:
>>> mixup_list [4.0、[1、 'X']、 '牛肉'、(-1.9 + 6J)]
>>>
mixup_listで>>>「牛肉」
真
>>>
>>> mixup_listに 'X'
偽
>>>
>>> mixup_listに 'X' [1]
真
>>> num_list
[65535L、2E + 030、(76.45-1.3j)]、-1.23、16.0、-49]
>>>
>>> -49 num_listで
真
>>>
>>> 34 num_listで
偽
>>>
>>> [65535L、2E + 030、(76.45-1.3j)] num_listで
真
[1]リストのタイプであるmixup_list、[1]であるそれ自体のメンバーはmixup_listないように「X」「x」は、mixup_list属していないことに留意されたいが、mixup_list。会員は、演算タプルタイプに等しく適用可能です。
連結演算子(+):(リストに新しい要素を追加するために利用できるが、追加すべきである()メソッド)
>>> num_list.append( "新しい項目")
これは、複数のリストを一緒に接続することができますが、オブジェクトの二つの異なる種類を接続することはできません、彼らはシリアルタイプであっても、も
一般的な使用は、他にリストの内容に追加する代わりに、「+」の()メソッドを拡張します
組み込み関数:
シーケンス型の関数:
のみ()
MAX()と分()
ソート()と(逆に)
)((列挙)とジップ
和()
リスト()およびタプル()
組み込み関数のタイプのリスト:
リスト操作方法
list.append(objが) リストにオブジェクトobjを追加します。
list.count(obj)指定 のオブジェクトがリストに表示されてはobj回数を返します。
list.extend(配列)は、リスト、配列の順序にコンテンツを追加します
list.index(OBJ、I = 0、J = LEN(リスト))kのリスト[K] == OBJ値を返し、kは、I <= K <Jの範囲であり、そうでない場合とValueError例外イニシエータ。
list.insert(インデックス、OBJ) インデックスに索引オブジェクトobjの挿入量の位置。
オブジェクトの指定された位置を削除するlist.pop(インデックス= -1)と戻り、デフォルトのオブジェクト
list.remove(OBJ)は、objリストからオブジェクトを削除
list.reverse()フリップインサイチュリスト
list.sort(FUNC =なし、キー=なし、 偽=逆) メンバリストに指定された方法で順序付けられ、そして逆フラグがTrueに設定されている場合、キーパラメータfuncが指定されている場合、方法は、各要素を比較する、指定、リストに逆の順序で配置されています。
逆は真であるリバース
リストの特定の性質:書籍P145のリストを他のデータ構造(スタックやキュー)を構築
タプル:------は不変のタプルを行うことができますし、リストを行うことができないです:KEY辞書になります
タプルの作成:タプルは追加するために、バックに必要な要素の一つの要素です、「」
aTuple =(123、 'ABC'、4.56、[ 'インナー'、 'タプル']、7-9i)
atuple =(1234567)
単独のタプルの要素を削除することは現実的ではありません
スライスタプルは読み取り専用で、修正するために使用することはできません
多機能は、(署名されていないパッケージを含む)すべてのオブジェクトがタプルである返します
変数の主要なターゲットタプルハッシュは、この規格が、タプルスカラーはできません満たすことができなければなりません。
モジュールのシーケンス型に関連付けられています:
アレイ型可変配列の種類を制限、すべての要素が同じ型でなければならないことを要求します。
浅いコピーのコピー機能とディープコピー(6.20を参照)
、オペレータがコールオペレータ、例えばoperator.concat(M、N)の形式の関数の配列を含み、(M + N)の操作を接続することと等価です。
Perlスタイルの正規表現検索(およびマッチング)再;第15章を参照してください
たStringIO / cStringIO例えばリードのようなファイル操作などの長い文字列、()、高速()関数など、Cのバージョンを求め、それを継承することができません。
テキストの折り返し/充填などTextwrap関数は、クラスもあります
Pythonのタイプは、サポートのすべてのタイプを含めます
高性能のコレクションのコンテナデータ型
Pythonオブジェクト:シャローコピーとディープコピー
コピーモジュール:コピー()
deepcopy()
オブジェクトの浅いコピーは、実際に他の言葉で、元のオブジェクト要素への参照として、それ自体が新しいコピーされたオブジェクトを元のオブジェクトの新しいタイプやコンテンツを作成しているが、彼は内容ではありません。