Pythonのイテレータ関数|セット2(islice()、starmap()、tee()..)

| |

1. islice (反復可能、開始、停止、ステップ):—このイテレータは、引数として渡された反復可能なコンテナで参照されている値を選択的に出力します。このイテレータは、 4つの引数、反復コンテナ、開始位置、終了位置、およびストライドを取ります。

2.スターマップ(機能、タプルのリスト):—このイテレータは、引数として関数とタプルのリストを取り、リスト内の各タプルから関数に応じて値を返します。

#動作を示すPythonコード
islice ()およびstarmap()


#import" itertools"イテレーター操作の場合

import itertools


#初期化リスト

li = [ 2 4 5 7 8 10 20 ]


#タプルのリストを初期化する

li1 = [( 1 10 5 )、( 8 4 1 )、( 5 4 9 )、( 11 10 1 )]


islice を使用( )...に従ってリストをスライスするには
#2番目のインデックスから6番目のスキップ2まで印刷を開始します

print "スライスされたリストの値は次のとおりです:" 、end = "")

print リスト(itertools。 islice (li、 1 6 2 ) ))


#starmap()を使用して値accを選択します。 function
#すべてのタプル値の最小値を選択します

print "関数に応じた値は次のとおりです:" 、end = "")

print list (itertools.starmap( min 、li1)))

出力:

スライスされたリスト値は次のとおりです:[4、7、10]値acc。機能するものは次のとおりです。[1、1、4、1] 

3.時間がかかる(関数、反復可能):—このイテレータはdropwhile()の反対であり、関数が最初にfalseを返すまで値を出力します

4.ティー(イテレータ、カウント):—このイテレータは、引数で言及されているコンテナを複数のイテレータに分割します

#動作を示すPythonコード
#takewhile()およびtee()


#import" itertools"イテレーター操作の場合

import itertools


#初期化リスト

li = [ 2 4 6 7 8 10 20 ]


#リストをイテレーターに保存する

iti = iter (li)


#using条件がfalseになるまで値を出力するには()を使用します。

print "リスト値最初のfalse値は次のとおりです: " 、end = " ")

print リスト (itertools.takewhile( lambda x:x <コードクラス="値">2<コードクラス="キーワード">=<コードクラス="キーワード">=<コードクラス= "value"> 0 、li)))


#teeを使用( )イテレーターを一覧表示するには
#同じ値を持つ3つのイテレーターのリストを作成します。

it = itertools.tee(iti 、 3


#イテレーター値の出力

print "イテレーターは次のとおりです:"

for i in 範囲 0 3 ): < / p>

print list (it [i]))

出力: 最初のfalse値までのリスト値は次のとおりです:[2、4、6]イテレータは次のとおりです:[2、4、6、7、8、10、20] [2、4、6、7、8、 10、20] [2、4、6、7、8、10、20]

5. zip_longest(iterable1、iterable2、fillval。):&# 8212;このイテレータは、イテレータの値を一度に1つずつ出力します。反復の1つが完全に出力される場合、残りの値はfillvalueに割り当てられた値で埋められます

#動作を示すPythonコード
#zip_longest()


#import&quot; itertools&quot;イテレータ操作の場合

import itertools


#zip_longest()を使用して2つの反復を結合します。

print "結合された値iterablesの: "

印刷 * (itertools.zip_longest( ’GesoGes’ ’ekfrek’ 、fillvalue = ’_’ )))

出力:

反復可能オブジェクトの合計値は次のとおりです:(’G’、’e’)(’e ’、’ k’)(’ s’、’ f’)(’ o’、’ r’)(’ G’、’ e’)(’ e’、’ k’)(’ s’、’ _ ’ )

コンビナトリアルイテレーター

1. product(iter1、iter2):&#8212;このイテレータは、引数として渡された2つの反復可能なコンテナのデカルト積を出力します。

2。順列(iter、group_size):&#8212;このイテレータは、イテレータのすべての要素のすべての可能な順列を出力します。 順列グループのサイズは、 group_size引数によって決定されます。

#Python-デモコード
#product()and permutation()


#import&quot; itertools&quot;イテレーター操作の場合

import itertools


#product()を使用してデカルト製品を印刷する

print "コンテナのカルテシアン製品は次のとおりです:"

print list (itertools.product( ’AB’ ’12’ )))


#順列を使用して、可能なすべての順列を計算します

print "指定されたコンテナのすべての順列は次のとおりです:" <コードクラス= "plain">)

print リスト(itertools.permutations( ’GfG’ 2 )))

出力:

コンテナの直積は次のとおりです:[(’A’、 ’1’)、(’A ’、’ 2’)、(’ B’、’ 1’)、(’ B’、’ 2’)]指定されたコンテナのすべての順列は次のとおりです:[(’G’、’f’)、(’G ’、’ G’)、(’ f’、’ G’)、(’ f’、’ G’)、(’ G’、’ G’)、(’ G’、’ f’)] 

3.組み合わせ(反復可能、group_size):&#8212;このイテレータは、引数で渡されたコンテナのすべての可能な組み合わせ(置換なし)指定されたグループサイズソートされた順序で出力します。

4.combinations_with_replacement(iterable、group_size):&#8212;このイテレータは、引数で渡されたコンテナのすべての可能な組み合わせ(置換あり)指定されたグループサイズソートされた順序で出力します。

#動作を示すPythonコード
#combination()およびcombination_with_replacement()


#import&quot; itertools&quot;イテレーター操作の場合

import itertools


#combinations()を使用して各組み合わせを出力します
#(置換なし)

print "並べ替えられた順序(置換なし)のコンテナのすべての組み合わせは次のとおりです:"

print list (itertools.combinations( ’1234’ 2 )))


#combination_with_replacement()を使用して各組み合わせを印刷します
#置換あり

print "並べ替えられた順序でのコンテナのすべての組み合わせ(置換あり)is: "

print リスト(itertools.combinations_with_replacement( ’GfG’ 2 )))

出力:

ソートされた順序(置換なし)のコンテナーのすべての組み合わせは次のとおりです:[( ’ 1’、’ 2’)、(’ 1’、’ 3’)、(’ 1’、’ 4’)、(’ 2’、’ 3’)、(’ 2’、’ 4’)、(’ 3’、’ 4’)]ソートされた順序(置換あり)のコンテナのすべての組み合わせは次のとおりです:[(’G’、’G’)、(’G’、’f’)、(’G’、’G ’)、(’ f’、’ f’)、(’ f’、’ G’)、(’ G’、’ G’)] 

無限反復子

1.カウント(開始、ステップ):&#8212;このイテレータは「開始」から印刷を開始し、無期限に印刷します。ステップが言及されている場合、番号はスキップされます。それ以外の場合、ステップはデフォルトで1です。

例:

 iterator.count(5,2)prints-5,7,9,11...。無限に

2.ループ(反復可能):&#8212;このイテレータは、渡されたコンテナから順番にすべての値を出力します。すべてのアイテムが循環されると、最初から印刷を再開します

例:

 iterator.cycle([1,2,3,4])は、-1,2,3,4,1,2,3,4,1を出力します。 ..無限に

3.繰り返し(val、num):&#8212;このイテレータは、渡された値を繰り返し印刷します。番号が言及されている場合、それらはその番号までです。

#動作を示すPythonコード
#repeat()


#import&quot; itertools&quot;イテレーター操作の場合

import itertools


#repeat()を使用して番号を繰り返し出力します

print "数字を繰り返し印刷する:"

印刷 リスト(itertools.repeat( 25 4 )) )

出力:

印刷繰り返し番号:[25、25、25、25] 

この記事は Manjeet Singh 。 Python.Engineeringとして貢献したい場合は、 Contributor.python.engineering を使用するか、記事を投稿して記事を書くこともできます。 @python.engineeringに貢献してください。 Python.Engineeringホームページに掲載されている私の記事を参照して、他のオタクを助けてください。

何か問題を見つけた場合、または上記のトピックに関する詳細情報を共有したい場合は、コメントを投稿してください。