我試圖找到一種方法來編寫組合函數。我在哪裏可以找到它?我在哪裏可以找到itertools.combinations()函數的源代碼
11
A
回答
13
請參閱itertools.combinations的文檔。沒有此功能的等效代碼:http://www.python.org/download/
嘗試下載最新版本:
def combinations(iterable, r):
# combinations('ABCD', 2) --> AB AC AD BC BD CD
# combinations(range(4), 3) --> 012 013 023 123
pool = tuple(iterable)
n = len(pool)
if r > n:
return
indices = range(r)
yield tuple(pool[i] for i in indices)
while True:
for i in reversed(range(r)):
if indices[i] != i + n - r:
break
else:
return
indices[i] += 1
for j in range(i+1, r):
indices[j] = indices[j-1] + 1
yield tuple(pool[i] for i in indices)
1
最新的來源可以從以下地址下載Python 2.7.1
16
實際的源代碼是用C語言編寫,並且可以在文件itertoolsmodule.c
中找到。正如eumiro's answer中指出的那樣,documentation of itertools.combinations()
顯示了等效的Python代碼。
2
相關問題
- 1. 我在哪裏可以找到JavaScript本機函數源代碼?
- 2. 我在哪裏可以找到Java數組的源代碼?
- 3. 哪裏可以找到math.h函數的源代碼?
- 4. 哪裏可以找到這個函數的源代碼?
- 5. 哪裏可以找到空間關係函數的源代碼?
- 6. 我在哪裏可以找到Vigenere密碼的Java源代碼?
- 7. 我在哪裏可以找到GCC源代碼中的strncpy()函數的實現?
- 8. 我在哪裏可以找到C++的generic.h的源代碼?
- 9. 我在哪裏可以找到.net源代碼中的ValueType構造函數?
- 10. 我在哪裏可以找到J2ME的源代碼?
- 11. 我在哪裏可以找到TagLib#庫的源代碼?
- 12. 我在哪裏可以找到TextView.setText(..)方法的源代碼?
- 13. 我在哪裏可以找到Singular(AngularJS for GWT)的源代碼?
- 14. 我在哪裏可以找到el-ri-1.0.jar的源代碼?
- 15. 我在哪裏可以找到Glassfish 4的源代碼?
- 16. 我在哪裏可以找到JavaEE軟件包的源代碼?
- 17. 我在哪裏可以找到「暫停」工具的源代碼?
- 18. 我在哪裏可以找到springloaded-core jar的源代碼?
- 19. 我在哪裏可以找到CastButtonFactory的源代碼
- 20. 我在哪裏可以找到libcrypto ++的源代碼?
- 21. 我在哪裏可以找到Ubuntu ARM init的源代碼?
- 22. 我在哪裏可以找到Aerith項目的源代碼
- 23. 我在哪裏可以找到android的firefox源代碼?
- 24. 我在哪裏可以找到Html.EditorFor網上的源代碼?
- 25. 我在哪裏可以找到System.Numerics.BigInteger的源代碼?
- 26. 我在哪裏可以找到RSA的官方源代碼?
- 27. Git - 我在哪裏可以找到實現.gitignore的源代碼
- 28. 我在哪裏可以找到httpsURLConnection的源代碼?
- 29. Java:我在哪裏可以找到WindowsAccessbridge的源代碼?
- 30. 我在哪裏可以找到JBoss servlet api的源代碼
這實際上是如何工作的?我試圖理解+我錯過了一些東西。 'indices'數組告訴我使用了哪些池的元素,但我似乎無法弄清楚它是如何產生不包含重複的索引集的。 – 2015-03-13 00:26:22
@JasonS,有幾點:首先,從示例中注意到,算法生成的具有'indices'的元組總是被排序(特別是'indices [i]
user3780389
2017-03-08 17:21:42
@JasonS我對else:return語句感到困惑。那裏有什麼縮進。什麼時候執行,如果對應於這個else? – MaPy 2017-10-02 16:18:41