案例:我需要確定三個對象組合是否滿足規則。在Python中迭代可變數量的迭代件
爲了簡單起見,假設某個給定的序列是由發生器函數吐出的項目的任意組合,則該規則滿足。生成器處理來自池中的物品將在其每個實例中彈出並且不總是產生相同的物品/訂單,因此構建物品列表並使用諸如itertools.combinations
之類的東西來生成組合將不起作用。
現在我有相當於一個功能:
def is_match_found(sequence):
items1 = items_generator()
for item1 in items1:
items2 = items_generator()
for item2 in items2:
items3 = items_generator()
for item3 in items3:
if sequence in [item1, item2, item3]:
return True
return False
但我可以預見到的未來,我需要看看n
對象的組合吐出由發電機滿足的規則。
我感覺好像一個帶有n
參數的函數實現遞歸for
循環可能是解決這個問題的一個步驟,但是當我去試圖找到一個有效的循環時,我的大腦就會崩潰。
有人能指出我正確的方向嗎?
你只是在尋找'itertools.product',還是我在這裏想念什麼? – abarnert
似乎是這項工作的正確工具,當我在電腦前時,我會嘗試一下。謝謝! – thismachinechills