まず、
1.
= 'こんにちは、世界!' STR1
#文字列の長さがlenの関数で計算された
印刷(LEN(STR1))#13れます
#文字列のコピーを入手大文字
(STR1。印刷を大文字())#こんにちは、世界!
#文字列が大文字になった後に得られたコピーし
印刷(STR1。アッパー())#ハロー、WORLD!
#文字列からの位置のサブストリング検索
印刷(STR1を。検索( 'または'))#。8
印刷(str1.find( 'たわごと'))#-1
#と同様の発見が、部分文字列が見つからない場合に例外をスローします
(STR1。#印刷をインデックス(「または」))
#印刷(str1.index(「たわごと」))
#始まる文字列指定した文字列かどうかを確認してください
印刷(STR1。STARTSWITH '彼の'())#偽
印刷(str1.startswith( 'HEL'))#トゥルー
#文字列が指定された文字列で終わるかどうかを確認してください
印刷(STR1。EndsWith(「!」))#トゥルー
#中央揃え、文字列の両側に幅を指定し、指定された文字を埋めるために
印刷(STR1。センター(50、「*」)を)
#文字列指定された幅は、充填剤、指定された文字の右側に配置されている
印刷(STR1。RJUST(50「」))
STR2 =「abc123456」
#抽出位置が文字列(添字)から文字を指定された
印刷(STR2 [2])のC#
スライス#文字列(先頭から、指定されたインデックスの終了インデックスを指定)
を印刷(STR2 [2 :. 5])#のC12の
印刷(STR2 [2:])#1 c123456の
印刷(STR2 [2 :: 2])#のC246の
印刷(STR2 [:: 2])#1 ac246の
プリント(STR2 [:: - 1])#1 654321cbaの
プリント(STR2 [-3:-1])#45
#文字列は、デジタルで構成するかどうかを確認してください
印刷(STR2。Isdigit())#の偽
#文字列を構成するかどうかを確認し
、印刷(str2.isalpha())#の偽の
#構成する数字と文字の文字列かどうかを確認してください
印刷(STR2。Isalnum())#真
STR3 = '[email protected]'
印刷(STR3を)
#コピーは、両側の周りストリングトリマスペースを得
印刷(STR3。ストリップ())
2。
LIST1 = [1、3、5、7、100]
印刷(LIST1)
LIST2 = [ 'ハロー'] * 5
プリント(LIST2)
#計算されたリストの長さ(要素数)
を印刷(LEN(List1を))
#添え字(インデックス)計算
プリント(List1を[0])
を印刷(List1を[4])
#プリント(LIST1 [5])#1はIndexError:範囲外のリストインデックス
プリント(LIST1 [-1])
、印刷(LIST1 [-3])
LIST1 [2] = 300
プリント(LIST1)
#添加元素の
list1.append(200)と
list1.insert(1、400)
のList1 + = [1000、2000]
プリント(リスト1)
プリント(LEN(リスト1))
#删除元素
list1.remove(3)
1234年場合LIST1で:
list1.remove(1234)
デルLIST1 [0]
プリント(LIST1)
#空のリスト要素
List1.Clear()
印刷(List1を)
3.
果物= [「ブドウ」、「アップル」、「Waxberryで」「ストロベリー」]
果物+ = [「ピタヤ」、「PEAR」、「マンゴー」]
#は、要素のリストをループ
果実における果物:
印刷(フルーツ.TITLE()、終了=「」)
を印刷()
#リストのスライス
fruits2フルーツ= [1:4]
印刷(fruits2)
## fruit3 =果物だけでなく、参照のリストの新しいコピーを作成
#が動作完了スライスしてコピーすることができますリスト
fruits3フルーツ= [:]
印刷(fruits3)
fruits4 =フルーツ[-3:-1]
プリント(fruits4)
#リストが反転コピースライス反転させることにより得ることができる
[:: - 1] fruits5 =果物を
印刷(fruits5)
4.
次のコードは、リスト上のソート操作を実装しています。
リスト1 = [ 'オレンジ'、 'りんご'、 '動物園'、 '
=ソートLIST2(List1を)
#は機能をソートされたリストは、着信変更しないソートするリストのコピーを返し
デザイン#関数を同じ関数としてソートされなければならない可能性などの副作用を生成しません
LIST3 =ソート(List1を、リバース=真)
キーで#キーワードパラメータは、デフォルトの代わりに、文字列の長さは、アルファベット順に従ってソートされている指定
ソート=(List1を、キー= LEN)list4
印刷(List1を)
印刷(LIST2)
を印刷(LIST3)
印刷(list4)
ソートされたオブジェクトのリストに送られた#メッセージ直接上のオブジェクトのリストをソート
list1.sort(リバース= TRUE)
印刷(のList1)
5.
我々はまた、文法リストのリストを作成する数式を使用することができ、コードは以下のとおりです。
= F [範囲でXのX(1、10)]
プリント(F)
F = [X + Y XのためのYのための'ABCDE'の'1234567'に】
プリント(F)
#は、式の構文を生成したリストを作成しますリストコンテナ
#の後には、ので、より多くのメモリ空間を取る準備ができて、この構文要素を使用してリストを作成します
= F [X - ** X-2のための範囲内(1、1000)]
印刷(sys.getsizeof(F))#は、オブジェクトによって占有メモリのバイト数を見る
(f)の印刷を
#は、次のコードはないのリストを作成することに注意してくださいをしかし、ジェネレータオブジェクトの
#は、データを生成することによって得ることができるが、それはストアデータに追加のスペースを取りません
(それは余分な時間がかかります)#データは、内部動作により得られたデータを必要とするたびに、
F =(X **レンジ2(1、1000))におけるXの
印刷(sys.getsizeof(F))#比べ式ビルダーは、データ記憶のための空間を占有しない
印刷(F)を
Fにヴァルのために:
プリント(ヴァル)
6.
上記に加え上記発電機の構文は、Pythonはビルダーを定義する別の方法があり、通常のファンクションジェネレータ関数に変換されます`yield`キーワードを介して行われます。次のコード生成を実装する方法を示し[カラムFeibolaqieの数](https://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5% A5%91%E6%95% B0%以下のE5の%88%97) 発生の。列の数を定義するには、以下Feibolaqie [再帰](https://zh.wikipedia.org/wiki/%E9%80%92%E5%BD%92)アプローチによって呼び出されてもよい。
$$ {\ F_ DisplayStyle 0} = 0 {$$
$$ {\ DisplayStyle F_ 1} = {}。1 $$
{$$ \ {N-DisplayStyle F_ = F_ {}} + 1-N-N - F_ {2}}(N- {} \ {2} GEQ)$$
[](./ RES /フィボナッチblocks.png)!
7.
DEF FIB(N):
A、B = 0 ,. 1
:レンジ(N)で_用の
A、B = B、B A +
収量A
DEFメイン():
FIBでヴァルのために(20):
印刷(ヴァル)
8.
###タプル
タプルリストPythonはタプルの要素は、我々はタプル回以上使用していた前のコードに変更することができないことを除いて、同様です。名前が示すように、我々はタプルを形成するために一緒に結合し、複数の要素を持っているので、データのリストとして保存することができます。次のコードは、タプルを定義して使用する方法を示します。
:DEFメイン()
#タプル定義
T =(真、 '羅ハオを' 38 '成都')
印刷(T)
位取得タプル
プリント(T [0])
を印刷(Tの[3] )
#横断タプル値
のメンバーのためにトンで:
印刷(メンバー)
タプルに再割り当て#
#T [0] = 'キングハンマー' #例外TypeErrorの
tは、元のタプルがガベージされる新しいタプルに戻って参照する#変数
T =( 'キングハンマー'、20、真'昆明')
プリント(t)は
#リストのにタプルを変換する
人=リスト(T)
を印刷(人)
#リストの要素の変更することができ
、人を[0] = 'ブルース・リーの
人[1] = 25
印刷(人)
#リストタプルに変換
= fruits_list [「アップル」、「バナナ」、「オレンジ」]
fruits_tuple =タプル(fruits_list)
印刷(fruits_tuple)
9.
ここでは、探検する価値質問です、私たちはこのようなデータ構造のリストを持って、なぜあなたは元が必要なのですかグループのこのタイプのこと?
1組の要素は、実際に我々は、プロジェクト、特に[マルチスレッディング(https://zh.wikipedia.org/zh-hans/%E5%A4%9A%E7%BA%であり、変更することはできませんBF%E7の%A8%8B)環境()後述するが使用することを好むことができる状態は、単純な、結果として生じる誤差を避けるために、不必要な手順を変更することはできないので、それらの不変オブジェクト(一方のオブジェクトであります彼はそれを維持するために簡単に変数ターゲットオブジェクトよりも一定であると言い、一方で、誰のスレッドが同じオブジェクトの内部状態を変更することはできませんので、一定のオブジェクトが自動的にスレッドセーフです、あなたが取引を保存することができますので、同期オーバーヘッド。一定の目的は、容易に)アクセスを共有することができます。だから、結論はこれです:要素が変更、追加、削除する必要がない場合、彼らはタプルが良い選択で使用し、この方法は、複数の値を返すようにすれば、当然のことながら、タプルの使用を検討することができます。
上記で作成した2タプルスペースには時間がかかり、リストに優れています。私たちは、これを行うことは非常に簡単で、メモリとどのくらいのメモリ空間ごとのリストのタプル同じ要素をチェックするためにgetsizeof機能のsysモジュールを使用することができます。また、下の図は、私のMacOSのシステム上のテストの結果であり、それはとりコンテンツタプルとリストを作成し、同じ時間を分析するためにipython%のはtimeitで魔法の命令を使用することができます。
![](./ RES / IPython-timeit.png)
###のセット使用して
重複を許可しない、と運ば交差点、労働組合、差分演算等であってもよい、Pythonは数学と一致しているコレクションのコレクションを。
![](./ RES /パイソン-set.png)
DEFメイン():
{1,2 ,. 3 ,. 3 ,. 3、2} SETL =
プリント(SETL)
プリント( '長さ='、LEN(SETL))
SET2 =集合(範囲(1、 10))
プリント(SET2)が
set1.add(4)
set1.add(5)
set2.update([11、12である])
、印刷(SETL)
プリント(SET2)
set2.discard(5)
ない原因KeyError例外がない場合#削除素子
SET2に4 IF:。
(4)set2.remove
印刷(SET2)
回収容器を通る#
SET2内のelemについて:
印刷(2 ** elemは、エンド= '')
を印刷()
#はタプルの集合に変換
(SET3 =セット(1、2、。3 ,. 3,2 ,. 1))
プリント(set3.pop())
プリント(SET3)
#セット交差点と組合、差、対称差分演算
プリント(SETL&SET2)
#プリント(SETL .intersection(SET2))
印刷(SET1 | SET2)
#印刷(set1.union(SET2))
印刷(SET1 - SET2)
印刷#(set1.difference(SET2))
プリント(SETL ^ SET2)
#プリント(set1.symmetric_difference(SET2))
#解析サブセットとスーパーセット
プリント(SET2 <= SETL)
#プリント(set2.issubset(SETL))
プリント(SET3 <= SETL)
#プリント(set3.issubset(SETL))
プリント(SETL> = SET2)
#プリント(set1.issuperset(SET2))
プリント(SETL> = SET3)
#プリント(set1.issuperset(SET3) )
10
>説明** **:Pythonは、()は、特定のタイプまたはデータ構造の後の章に言及されるカスタムオペレータに何らかの特別な方法で上記のコードを許可され、我々は、一連の上で動作しますときに私はコレクションオブジェクトのメソッドは、直接、そのような`&`交差法の役割を持つオペレータは同じですが、コードをより直感的にするために演算子を使用しています。などの演算子を対応する使用することができます呼び出すことができます
###辞書使用
辞書は私たちの生活の中で使用される辞書に似た別の変数コンテナモデルであり、それは物体の任意のタイプ、および異なるセットのリストを格納することができ、辞書の各要素は、結合からのものとコロンで区切られたキーと値の「上キー」からなる値。次のコードは、辞書を定義し、使用する方法を示します。
デフメイン():
スコア= {「羅ハオ」:95「Baiyuan牙」:78「DiRenJie」:82}
#キーを介して対応する辞書の値を得ることができる
(スコア[「羅ハオ」])プリントを
プリント(スコア[「DiRenJie」] )
#辞書トラバーサル(実際にキー横断し、キーを介して対応する値を取る)
スコアにおけるELEM用:
印刷( '%S \ T ---> \ T D%' %(ELEM、スコア[ELEM]) )
更新辞書内の要素の#
スコア[ 'Baiyuan牙'] = 65の
[ '諸葛はwanglang'] = 71であるスコアを
scores.update(コールド= 67、85 Fangqi彼=)
プリント(スコア)
スコアにおける'呉' IF:
印刷(スコア[「ウー」])
、印刷(scores.get(「ウー」))
#GETメソッドは、対応するキーの値を取得するが、デフォルト値によって提供することができる
プリント(scores.get(「ウー」、60))
#削除辞書要素
を印刷(scores.popitem())
を印刷(スコア。popitem())
を印刷(scores.pop( '羅ハオ'、100))
#空の辞書
scores.clear()
印刷(スコア)