forループに飽きたので、リスト生成式を試してみましょう.
9901 ワード
プログラムを作成したり、他の人のプログラムを表示したりするとき、リスト生成式に遭遇することがよくあります.これは複雑ではありませんが、コードをより簡潔で柔軟にするのに役立ちます.多くのpythonユーザーはあまり使用しません.ここでは、リスト生成式とジェネレータ式の使用について詳しく説明します
一、リスト生成式
利点:1行のコードで必要なリストをほとんど解決できます.
欠点:夢中になりやすく、間違いを並べにくく、3つのサイクルを超えてはいけない.リスト導出式で構築可能な任意のリストは、forループ のような他のもので構築することができる.リスト導出式は、最大3つのforサイクルを超えない.判断は1つの しか使えない
1.ループモード:テンプレート:[加工されたi for i in反復可能オブジェクト]
forループメソッドの使用
二番目の書き方
上のコードは、1行でできます.リストで式を導くといいです
例:1~10平方の結果を求める
2.フィルタモード:[加工されたi for i in反復可能オブジェクトif条件フィルタ]
よく使われるのはリスト導出式です
ディクショナリガイド
辞書のkeyとvalueを合わせる
に相当
しゅうごうゆうどうしき
リスト内の各値の平方を計算し、重量除去機能を持参する
集合と辞書には違いがあります.
キー値のペアは、辞書です.たとえば{'k 1':1,'k 1':2}
キー値のペアがないのは、{1,2,3,4}のような集合です.
二、ジェネレータ式
リスト導出式と同様に、[]を()に変更するだけです.
値取得使用_next__方法
リストの導出:一目瞭然、メモリの占有
ジェネレータ式:メモリを節約するために表示できません.
一、リスト生成式
利点:1行のコードで必要なリストをほとんど解決できます.
欠点:夢中になりやすく、間違いを並べにくく、3つのサイクルを超えてはいけない.
1.ループモード:テンプレート:[加工されたi for i in反復可能オブジェクト]
forループメソッドの使用
li = []
for i in range(1,4):
li.append(' '+str(i)+' ')
print(li) #[' 1 ', ' 2 ', ' 3 ']
二番目の書き方
li = []
for i in range(1,4):
li.append(' %s ' % i)
print(li)
上のコードは、1行でできます.リストで式を導くといいです
li = [' %s ' %i for i in range(1,4)]
print(li)
li = [' {} '.format(i) for i in range(1,4)] #
print(li)
例:1~10平方の結果を求める
li = [i ** 2 for i in range(1,11)]
print(li)
:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2.フィルタモード:[加工されたi for i in反復可能オブジェクトif条件フィルタ]
30 3
l3 = [i for i in range(1,31) if i % 3 == 0]
print(l3) # [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
30 3
li = [i**2 for i in range(1,31) if i % 3 == 0]
print(li) # [9, 36, 81, 144, 225, 324, 441, 576, 729, 900]
'e'
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry']]
l4 = [name for i in names for name in i if name.count('e') == 2 ]
print(l4) # ['Jefferson', 'Wesley', 'Steven', 'Jennifer']
よく使われるのはリスト導出式です
ディクショナリガイド
辞書のkeyとvalueを合わせる
dict = {'a': 10, 'b': 34}
dict_frequency = {dict[k]: k for k in mcase}
print(dict_frequency)
:{10: 'a', 34: 'b'}
に相当
dict = {'a': 10, 'b': 34}
dict_frequency = {}
for k in dict:
dict_frequency[k]=dict[k]
print(dict_frequency)
Key value ,
しゅうごうゆうどうしき
リスト内の各値の平方を計算し、重量除去機能を持参する
squared = {x**2 for x in [1, -1, 2]}
print(squared)
:{1, 4}
a = {1,1,4}
print(type(a))
: , {} 。
集合と辞書には違いがあります.
キー値のペアは、辞書です.たとえば{'k 1':1,'k 1':2}
キー値のペアがないのは、{1,2,3,4}のような集合です.
二、ジェネレータ式
リスト導出式と同様に、[]を()に変更するだけです.
l_obj = (' %s ' % i for i in range(1,4))
print(l_obj)
: at 0x000002DDBEBADE60>
値取得使用_next__方法
l_obj = (' %s ' % i for i in range(1,4))
print(l_obj.__next__())
print(l_obj.__next__())
print(l_obj.__next__())
:
1
2
3
リストの導出:一目瞭然、メモリの占有
ジェネレータ式:メモリを節約するために表示できません.