2017-03-26 113 views
0

我有一個變量,如下所示:組合的字符串

symbols = ['KEL','BYCO'] 

我想如下圖所示,這將使這些符號作爲輸出的組合功能

['KEL'],['BYCO'] and ['KEL','BYCO'] 

可能有人推薦任何庫/功能通過它我可以實現這樣的組合,給定一個包含n個字符串的變量。

+0

你在找什麼看起來像*冪*。空的列表也是一個組合...你可以使用'itertools.combinations' ... –

+0

我已經看過這個功能。在itertools.combination(iterable,r)中會是什麼?在一個例子中,我需要它是1來實現我的輸出的前兩個元素,然後我需要r是2來獲得最後的輸出。因此它不適合我。 –

+0

現在你只需要增加長度並生成那個長度的組合。你想包括功率集? –

回答

0

我想這是你想要什麼:

Python 2.7.6 (default, Oct 26 2016, 20:30:19)                                                         
[GCC 4.8.4] on linux2                                                               
Type "help", "copyright", "credits" or "license" for more information.                                                   
>>>                                                                    
>>> from itertools import combinations, chain                                                         
>>>                                                                                                                                     
>>> def powerset(iterable):                                                              
...  "powerset([1,2,3]) -->() (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"                                                  
...  s = list(iterable)                                                              
...  return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))                                                 
...                                                                    
>>> symbols = ['KEL','BYCO'] 
>>>                                                                                                                           
>>> list(powerset(symbols))                                                             
[(), ('KEL',), ('BYCO',), ('KEL', 'BYCO')] 

這裏的powerset功能是直接從文檔解禁:https://docs.python.org/2/library/itertools.html

+0

謝謝。這是我想要的。 –