python中のitertoolsの使用詳細
今日はpythonの中にモジュールitertoolsを内蔵していることを了解しました。よく知っています。後でforを少なく書いてもいいですか?😁。
1.無限のローズマリー
1.1 count(start、[step])
count()は二つのパラメータを受け入れます。 start:循環開始の数字 step:サイクル中の間隔
cycleは1 while Trueで、無限ループの中の数字です。
繰り返しelem,n回
2.1 accumulate(p,[func])
funcの関数を使用して、反復オブジェクトpを累積します。
chain()には複数の反復オブジェクトを入れて、逐一反復しても良いです。
chainと違うところは、 chain:複数の反復オブジェクト を受け入れることができる。 chain.from_iterable():反復オブジェクトを生成することができるローズマリー を受け入れることができる。
これを見て、sがselectorsの中の元素であることが分かりました。
(d[0]if s[0])、(d[1]if s[1])、…
循環開始の条件は、最初のpred条件を満たさない場合になるまで、遍歴を開始します。
この感じはとても面白いです。sqlのグループに似ています。by。文字列、リストなどをグループ化できます。
リターンキーと、グループ内の内容
これは反復オブジェクトを切断することです。負の数はサポートされていません。ラnge(1,10,2)のような感じがします。
これはzipと似ていますが、違うところは: zip終了は、中で最も短い反復対象 に依存します。 zip_longestの終了は、中で最も長い反復オブジェクトに依存します。
3.1プロジェクト
入れ子に相当するfor
全配列、例えば出力123の全ての場合(1、2、3)、(1、3、2)…
pからすべての長さrの配列を探し出します。順序があります。
pからすべての長さrの配列を探し出して、順序がありますが、自身を含めて重複するという意味です。 cobinations uwith_replaccement(‘ABCD’,2) AA AB AC AD BB BC BD CC CD DD
理解は分かりましたが、使う時は覚えられますか?
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
1.無限のローズマリー
1.1 count(start、[step])
count()は二つのパラメータを受け入れます。
from itertools import count
"""
count()
"""
c = count(0, 2)
v = next(c)
while v < 10:
v = next(c)
print(v, end=',')
1.2 cycle()cycleは1 while Trueで、無限ループの中の数字です。
"""
cycle()
"""
from itertools import cycle
c = cycle('ABCD')
for i in range(10):
print(next(c), end=',')
1.3レピート(elem、[n])繰り返しelem,n回
"""
repeat()
"""
from itertools import repeat
r = repeat(1, 3)
for i in range(3):
print(next(r), end=',')
2.ローズマリー2.1 accumulate(p,[func])
funcの関数を使用して、反復オブジェクトpを累積します。
"""
accumulate()
"""
from itertools import accumulate
test_list = [i for i in range(1, 11)]
for i in accumulate(test_list): # operator.add
print(i, end=',')
print()
for i in accumulate(test_list, lambda x, y: x * y): # operator.mul
print(i, end=',')
2.2 chain()chain()には複数の反復オブジェクトを入れて、逐一反復しても良いです。
"""
chain()
"""
from itertools import chain
ch = chain([1, 2, 3], {4: 4, 5: 5}, {6, 7, 8}, (9,), [10, [11, 12]])
for i in ch:
print(i)
2.3 chain.from_iterable()chainと違うところは、
"""
chain.from_iterable()
"""
def gen_iterables():
for i in range(10):
yield range(i)
for i in chain.from_iterable(gen_iterables()):
print(i)
2.4 comppress(data、selectors)これを見て、sがselectorsの中の元素であることが分かりました。
(d[0]if s[0])、(d[1]if s[1])、…
"""
compress
"""
from itertools import compress
print(list(compress(['A', 'B', 'C', 'D'], [0, 1, 1, 1])))
2.5 dropwhile(pred、seq)循環開始の条件は、最初のpred条件を満たさない場合になるまで、遍歴を開始します。
"""
dropwhile()
"""
from itertools import dropwhile
l = [1, 7, 6, 3, 8, 2, 10]
print(list(dropwhile(lambda x: x < 3, l)))
2.6グループoupbyこの感じはとても面白いです。sqlのグループに似ています。by。文字列、リストなどをグループ化できます。
リターンキーと、グループ内の内容
from itertools import groupby
#
for k, g in groupby('11111234567'):
print(k, list(g))
d = {1: 1, 2: 2, 3: 2}
# value
for k, g in groupby(d, lambda x: d.get(x)):
print(k, list(g))
2.7 isliceこれは反復オブジェクトを切断することです。負の数はサポートされていません。ラnge(1,10,2)のような感じがします。
from itertools import islice
print(list(islice('ABCDEFG', 2,3, None)))
2.8 zip_longestこれはzipと似ていますが、違うところは:
from itertools import zip_longest
for x,y in zip_longest([1,2,3],[1,2]):
print(x,y)
for x,y in zip([1,2,3],[1,2]):
print(x,y)
配列の組み合わせ3.1プロジェクト
入れ子に相当するfor
“”"
product for
“”"
from itertools import product
for i,j in product([1,2,3],[4,5]):
print(i,j
3.2 permuttions全配列、例えば出力123の全ての場合(1、2、3)、(1、3、2)…
from itertools import permutations
print(list(permutations('123')))
3.3 commbinations(p,r)pからすべての長さrの配列を探し出します。順序があります。
from itertools import combinations
print(list(combinations([1,2,3],2)))
3.4 commbinations_with_replaccement()pからすべての長さrの配列を探し出して、順序がありますが、自身を含めて重複するという意味です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。