我想獲得子字串的組合,如下面的示例:
- 原始字串:“這是我的筆”
- 預期輸出串列:[“This is my pen”、“This is mypen”、“This ismy pen”、“Thisis my pen”、“This ismypen”、“Thisismy pen”、“Thisismypen”]
正如您在示例中看到的那樣,我想通過洗掉空格字符來獲取所有子字串組合,同時保持序列的順序。
我嘗試使用strip(idx)函式和from itertools import combinations. 但是很難保持原句的順序,同時得到所有可能的情況。
歡迎任何基本的想法!非常感謝。
- 我是編程新手,所以如果我需要寫更多細節,請告訴我。非常感謝。
uj5u.com熱心網友回復:
嘗試這個:
import itertools
s = "This is my pen"
s_list = s.split()
s_len = len(s_list)
然后:
r = ["".join(itertools.chain(*zip(s_list, v ("",))))
for v in itertools.product([" ", ""], repeat=s_len-1)]
這導致r具有以下值:
['This is my pen',
'This is mypen',
'This ismy pen',
'This ismypen',
'Thisis my pen',
'Thisis mypen',
'Thisismy pen',
'Thisismypen']
如果您只想迭代這些值,則可以避免創建頂級串列,如下所示:
for u in ("".join(itertools.chain(*zip(s_list, v ("",))))
for v in itertools.product([" ", ""], repeat=s_len-1)):
print(u)
產生:
This is my pen
This is mypen
This ismy pen
This ismypen
Thisis my pen
Thisis mypen
Thisismy pen
Thisismypen
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/517895.html
標籤:Python细绳
