用法:
itertools.product(*iterables, repeat=1)
輸入迭代的笛卡爾積。
大致相當於生成器表達式中的嵌套for-loops。例如,
product(A, B)
返回與((x,y) for x in A for y in B)
相同的結果。嵌套循環像裏程表一樣循環,每次迭代時最右邊的元素都會前進。此模式創建一個字典順序,因此如果輸入的可迭代對象已排序,則產品元組將按排序順序發出。
要計算迭代與自身的乘積,請使用可選的
repeat
關鍵字參數指定重複次數。例如,product(A, repeat=4)
與product(A, A, A, A)
的含義相同。這個函數大致相當於下麵的代碼,隻是實際的實現不會在內存中建立中間結果:
def product(*args, repeat=1): # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111 pools = [tuple(pool) for pool in args] * repeat result = [[]] for pool in pools: result = [x+[y] for x in result for y in pool] for prod in result: yield tuple(prod)
在
product()
運行之前,它完全消耗輸入的可迭代對象,將值池保存在內存中以生成產品。因此,它僅對有限輸入有用。
相關用法
- Python itertools.permutations用法及代碼示例
- Python itertools.pairwise用法及代碼示例
- Python itertools.takewhile用法及代碼示例
- Python itertools.compress用法及代碼示例
- Python itertools.dropwhile用法及代碼示例
- Python itertools.repeat用法及代碼示例
- Python itertools.combinations_with_replacement用法及代碼示例
- Python itertools.groupby()用法及代碼示例
- Python itertools.repeat()用法及代碼示例
- Python itertools.count用法及代碼示例
- Python itertools.starmap用法及代碼示例
- Python itertools.filterfalse用法及代碼示例
- Python itertools.chain.from_iterable用法及代碼示例
- Python itertools.groupby用法及代碼示例
- Python itertools.zip_longest用法及代碼示例
- Python itertools.accumulate用法及代碼示例
- Python itertools.tee用法及代碼示例
- Python itertools.combinations用法及代碼示例
- Python itertools.chain用法及代碼示例
- Python itertools.cycle用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 itertools.product。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。