-3
我有一個像123[4-6][1-2]
一個字符串,我想一個函數,給了我清單,所有的組合:Python字符串分割組合
['12341', '12342', '12351', '12352', '12361', '12362']
輸入字符串可以像[12-45]888[1-2]76[0-9]
一個價值,我想在功能Python給我所有組合的列表。
我有一個像123[4-6][1-2]
一個字符串,我想一個函數,給了我清單,所有的組合:Python字符串分割組合
['12341', '12342', '12351', '12352', '12361', '12362']
輸入字符串可以像[12-45]888[1-2]76[0-9]
一個價值,我想在功能Python給我所有組合的列表。
使用正則表達式找到範圍和itertools.product
找到所有可能性。
import re
from itertools import product
def getranges(s):
for a, b in re.findall(r"\[(\d+)-(\d+)\]", s):
yield range(int(a), int(b)+1)
def strcombs(s):
for r in product(*getranges(s)):
it = iter(str(i) for i in r)
yield re.sub(r"\[\d+-\d+\]", lambda _: next(it), s)
s = "123[4-6][1-2]"
print(list(strcombs(s))) # ['12341', '12342', '12351', '12352', '12361', '12362']
你試過了嗎? – Woot4Moo
@ Woot4Moo ...張貼在這裏。 – Leb
@Leb har har,我正在尋找一個代碼片段,試圖嘗試並且無法正常工作。 – Woot4Moo