[英]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.