リストがあります:
文字母列表= [ "a"、 "b"、 "c"、 "d"、 "a"、 "b"、 "c"、 "d"、 "a"、 "b"、 "c"、 "d "、 " a "、" b "、" c "、" d "、 ]
4文字ごとに、最初の文字を取ります
(1)論理プロトタイプ:
行数= -1 def 4行ごとに最初の行を取得します(): グローバル行番号 行番号+ = 1 if行番号%4 == 0: return True else: return False new list =(i for i in letter 4行ごとに最初の行を取る場合のリスト()) 印刷(新しいリスト)
(2)ジェネレーター:
def各xのy番目の行を取りますline_generator(x、y): 行数= -1-(y-1) while True: 行数+ = 1 行数の場合%x == 0: yield True else: 収量 False4行ごとに1行目を取得= x行ごとにy行目を取得line_generator(4,1) new list = [i for i in letter list if next(4行ごとに最初の行を取得)] print(new list)
//注:「4行ごとに最初の行をフェッチする」このジェネレーターの例では、再利用せず、使い切ったら破棄します
(3)拡張
def各xに任意の行を取りますline_generator(x、* args): 行数= -1 while True: 行数 + = 1剰余=行数%x if(remainder + 1)in args: yield True else: 生成 False4行あたり134行を取る= xあたり任意の行を取るrow_generator(4,1,3,4) 新しいリスト= [次の場合は文字リストのifor i(4行あたり134行を取る)] print(new List)