Python 的庫函數里有沒有現成的全排列函數?
01-03
例如如下的場景:
---------------------------------------------- as = [1,2,3]bs = ["a","b","c"]
cs = ["o","r","z"] for a in as:for b in bs:
for c in cs: do_something(a,b,c) ----------------------------------------------如果有這樣一個輸出全排列的函數就方便多了:
---------------------------------------------- fullarr(as, bs, cs): for a in as: for b in bs:for c in cs:
yield a,b,c ----------------------------------------------然後就可以直接:
---------------------------------------------- for a,b,c in fullarr(as, bs, cs): do_something(a,b,c) ---------------------------------------------- python里有很多有用的庫函數,而且一般來說效率較自己寫起來要高。想問問有沒有現成的實現這種全排列的呢?
這個就行&>&>&> for i in itertools.permutations("abcd",4): print "".join(i)
在itertools模塊 裡面 product函數
itertools里就有…全排列就靠permutation了,參數是個可迭代量,返回值是個迭代器。
當然也有部分排列、組合、部分組合之類的。print list(itertools.combinations(["a","b","c"],2))
[("a", "b"), ("a", "c"), ("b", "c")]
combinations()函數返回的是這樣的列表。無重複的。
推薦閱讀:
※怎樣從零開始用 Python 寫一個貪吃蛇?
※python3.5 pip安裝庫,無法找到vcvarsall.bat錯誤?裝VS、改源碼無效
※用python寫程序時,怎麼知道我想實現的功能有沒有現成的函數?
※python爬蟲如何深入學習?