python內置函數-排列組合函數


product 笛卡爾積  (有放回抽樣排列

permutations 排列  (不放回抽樣排列

combinations 組合,沒有重復  (不放回抽樣組合

combinations_with_replacement 組合,有重復  (有放回抽樣組合

詳細的參見官網

 

>>> import itertools >>> for i in itertools.product('ABCD', repeat = 2): ... print(i) ... ('A', 'A') ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'A') ('B', 'B') ('B', 'C') ('B', 'D') ('C', 'A') ('C', 'B') ('C', 'C') ('C', 'D') ('D', 'A') ('D', 'B') ('D', 'C') ('D', 'D') >>> for i in itertools.permutations('ABCD', 2): ... print(i) ... ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'A') ('B', 'C') ('B', 'D') ('C', 'A') ('C', 'B') ('C', 'D') ('D', 'A') ('D', 'B') ('D', 'C') >>> for i in itertools.combinations('ABCD', 2): ... print(i) ... ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'C') ('B', 'D') ('C', 'D') >>> for i in itertools.combinations_with_replacement('ABCD', 2): ... print(i) ... ('A', 'A') ('A', 'B') ('A', 'C') ('A', 'D') ('B', 'B') ('B', 'C') ('B', 'D') ('C', 'C') ('C', 'D') ('D', 'D')

     還有就是,combinations和permutations返回的是對象地址,原因是在python3里面,返回值已經不再是list,而是iterators(迭代器), 所以想要使用,只用將iterator 轉換成list 即可, 還有其他一些函數返回的也是一個對象,需要list轉換,比如 list(map())等 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM