假設我有一個看起來像這樣的列表:變量序列生成列表排列組合Lenghts
beast = ['E', 'O', 'R', 'E', 'O', 'S', 'P', 'E', 'P', 'P', 'O', 'R', 'S', 'P', 'O', 'E']
現在,這裏是我想提取的基本模式:
basic_oros = ['O', 'R', 'O']
pi_poro = ['P', 'O', 'R', 'O']
pi_orpo = ['O', 'R', 'P', 'O']
pi_porpo = ['P', 'O', 'R', 'P', 'O']
si_orso = ['O', 'R', 'S', 'O']
spi_orspo = ['O', 'R', 'S', 'P', 'O']
spi_porso = ['P', 'O', 'R', 'S', 'O']
spi_porspo = ['P', 'O', 'R', 'S', 'P', 'O']
的問題是,如果我只從beast
中提取出['P', 'O', 'R', 'S', 'P', 'O']
,那麼在發生該模式之前,我錯過了之前的P
。
(更好的例子 - 也可以有['O', 'O', 'R', 'O', 'O', 'O']
)
因此,在這些基本模式的每一個字母可在感擴展:
O可以一起發生三次。
Ps可以一起出現兩次。
R可以同時出現兩次。
S只能出現一次。
我想生成所有可能的排列列表,但不知道從哪裏開始。
我寫了一個天真的Python代碼替換的O每次出現三鋨等,但導致 -
['O', 'O', 'O', 'R' 'O', 'O', 'O']
當我需要找哪家都不行: ['O', 'R', 'O', 'O']
任何幫助表示讚賞。謝謝。
這實際上聽起來像是一個正則表達式的工作。 – user2357112
在列表上?我以前從未使用Regex。 –
你不能在'beast'中直接執行正則表達式搜索,但是你可以在'''.join(beast)'上執行一次。 – user2357112