Lao Qi から Python の for ループ ステートメントを学ぶ

WBOY
リリース: 2016-06-16 08:41:27
オリジナル
1197 人が閲覧しました

くだらない話はやめて、仕事に取り掛かりましょう。

forの基本操作

For はループ処理に使用され、オブジェクトから要素を順番に読み取ります。以下の例を見て、学習したデータ オブジェクトに対して for ループを使用して、どれが使用でき、どれが使用できないかを確認してください。同時に過去の内容の振り返りでもあります。

コードをコピー コードは次のとおりです:

>>> name_str = "qiwsir"
>>> for i in name_str: #str
で for ループを使用できます ... print i,
... q i w s i r
>>> name_list = list(name_str)

>>> 名前リスト
['q'、'i'、'w'、's'、'i'、'r']
>>> for i in name_list: #リストにも使用できます
... print i,
...
q i w s i r

>>> name_set = set(name_str) #set も使用できます

>>> 名前セット
set(['q', 'i', 's', 'r', 'w'])
>>> name_set の i:
... print i,
...
q i s r w

>>> name_tuple = タプル(name_str)

>>> 名前タプル
('q'、'i'、'w'、's'、'i'、'r')
>>> for i in name_tuple: #tuple も使用できます
... print i,
...
q i w s i r

>>> name_dict={"name":"qiwsir","lang":"python","website":"qiwsir.github.io"}

>>> name_dict の i : #dict も例外ではありません
... print i,"-->",name_dict[i]
...
lang --> Python
ウェブサイト --> qiwsir.github.io
名前 --> キウシール

上記のデータ型に加えて、for ファイルを使用することもできます。for を使用してファイル オブジェクトを読み取る方法を説明する 2 つの特別な記事があります。忘れた場合でも閲覧可能です。

リスト解析での for の使用は過小評価できません。これはリスト解析の説明で説明しましたが、いわゆる学習と復習は冗談ではありません。

コードをコピー コードは次のとおりです:
>>> one = range(1,9)
>>> 1 つ
[1、2、3、4、5、6、7、8]
>>> [x の x 1 の場合 x%2==0 ]
[2、4、6、8]

私は、リスト解析の強力さを今後の研究でさらに理解するつもりです。

python3を使うと、辞書解析やタプル解析も素晴らしいことがわかります。

ワンランク上に進むには、一般化する必要があります。上記の for ループを要約すると、次の図に示されます:

画像の説明を入力してください

1 つの単語で次のことを表現します:

コードをコピー コードは次のとおりです:
シーケンス内の iterate_var の場合:
ステートメント

Iterating_var はオブジェクト シーケンスの反復変数です。つまり、シーケンスは特定のシーケンスを持つことができるオブジェクトである必要があります。特定のシーケンスがないという事実、つまり要素を取得できることに特に注意してください。特定の添字によると。もちろん、ファイル オブジェクトはシーケンスに属しており、それを読み出す場合でも、フッターを使用してその内容を読み取ることができます。

zip

zipとは何ですか?公式ドキュメントを取得するには、対話モードで help(zip) を使用します:

zip(...)

zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
タプルのリストを返します。各タプルには、各引数シーケンスの i 番目の要素が含まれます。返されるリストは、最も短い引数シーケンスの長さに切り詰められます。
上記のドキュメントを理解するために実験してください:

コードをコピー コードは次のとおりです:
>>> a = "キウサー"
>>> b = "github"
>>> zip(a,b)
[('q', 'g'), ('i', 'i'), ('w', 't'), ('s', 'h'), ('i', 'u') 、('r'、'b')]
>>> c = [1,2,3]
>>> d = [9,8,7,6]
>>> zip(c,d)
[(1, 9), (2, 8), (3, 7)]
>>> e = (1,2,3)
>>> f = (9,8)
>>> zip(e,f)
[(1, 9), (2, 8)]

>>> m = {"名前","言語"}
>>> n = {"qiwsir","python"}
>>> zip(m,n)
[('lang', 'python'), ('name', 'qiwsir')]
>>> s = {"名前":"qiwsir"}
>>> t = {"lang":"Python"}
>>> zip(s,t)
[('名前', '言語')]

zip は組み込み関数であり、そのパラメータはシーケンス データ型である必要があります。辞書の場合、キーはシーケンスとして扱われます。次に、シーケンスに対応する要素が順番にタプルに形成され、リストの要素として使用されます。

以下は、パラメーターがシーケンス データである場合の特殊なケースであり、生成される結果は次のようになります。

コードをコピー コードは次のとおりです:
>>>
「キウシール」
>>> c
[1、2、3]
>>> zip(c)
[(1,), (2,), (3,)]
>>> zip(a)
[('q',), ('i',), ('w',), ('s',), ('i',), ('r',)]

この関数は、for と一緒に使用すると実装されます:

コードをコピー コードは次のとおりです:
>>>c
[1、2、3]
>>>
[9、8、7、6]
>>> for x,y in zip(c,d): #1 対 1 の印刷を実現
... print x,y
...
1 9
2 8
3 7
>>> for x,y in zip(c,d): #2 つのリストの対応する数量を上下に加算します。
... print x+y
...
10
10
10

上記の追加関数は、zip を使用しない場合、次のように記述することもできます。

コードをコピー コードは次のとおりです:
>>> length = len(c) if len(c) >>> 範囲 (長さ) の i :
... print c[i]+d[i]
...
10
10
10

上記の 2 つの書き方のうち、どちらが優れていますか?前者?後者?ははは。ほぼ完成したと思います。次のこともできます:

コードをコピー コードは次のとおりです:
>>> [ zip(c,d) の x,y の x+y ]
[10、10、10]

前に何度も言ったように、リスト解析は強力です。もちろん、次のようにすることもできます:

コードをコピー コードは次のとおりです:
>>> [ c[i]+d[i] for i in range(length) ]
[10、10、10]

for ループ文は後で頻繁に使用されますが、実際にはこれまでにもよく使用されてきました。したがって、読者はあまり馴染みのないものを感じる必要はありません。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート