>>> 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 ループ文は後で頻繁に使用されますが、実際にはこれまでにもよく使用されてきました。したがって、読者はあまり馴染みのないものを感じる必要はありません。