[英]How to make combinations in python?
如何在字符串中生成所有 3 個大寫組合? 例如:
f("abcde") => ['ABCde', 'aBCDe', 'abCDE', 'ABcDe', 'ABcdE' ...]
一種方法是生成字母的笛卡爾積(小寫和大寫),然后僅在正好有 3 個大寫字母時保留它們
from itertools import product
def combs(s, n):
pairs = tuple(i.lower() + i.upper() for i in s)
for i in product(*pairs):
if sum(1 for j in i if j.isupper()) == n:
yield ''.join(i)
例子
for s in combs('abcde', 3):
print(s)
輸出
abCDE
aBcDE
aBCdE
aBCDe
AbcDE
AbCdE
AbCDe
ABcdE
ABcDe
ABCde
def f(s):
r = []
for i in range(1, len(s)-1):
for j in range(i+1, len(s)):
r.append(s[:i].capitalize() + s[i:j].capitalize() + s[j:].capitalize())
return r
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.