簡體   English   中英

在python中生成帶有重復的組合

[英]Generating combinations with repetetions in python

我使用此代碼生成了數字組合,例如123

from itertools import combinations
for i in set(combinations('123',2)):
    print(''.join(i))

我在這里得到所需的輸出

13
12
23

但是當我使用133 ,我得到

13
33

但是我想忽略重復,我希望輸出為

13
13
33

是否有其他替代方法?

非常簡單 您應該使用list(combinations('123',2))而不要設置。 Set減少相同的值。

set()本質上不允許任何重復的元素。 set() 中的每個元素都 必須是唯一的 Python文檔記錄了以下內容:

Python還包括集合的數據類型。 一個集合是沒有重復元素的無序集合。

強調我的。 這就是為什么您沒有得到預期的輸出的原因。 當您調用set() ,它將從您的組合中刪除重復的13 相反,只需按原樣遍歷組合對象即可:

from itertools import combinations

for i in combinations('133', 2): # no call to set()
    print(''.join(i))

哪個輸出:

13
13
33

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM