[英]combinations of letters using itertools in python2.7
我正在嘗試使用itertools.combinations返回最大長度為n的字母的所有組合。
def string_combinations(alphabet, n):
'''
Parameters
----------
alphabet : {str}
n : {int}
Returns
-------
list : {list} of {str}
Example
-------
>>> string_combinations('abc', 2)
['a', 'b', 'c', 'ab', 'ac', 'bc']
'''
到目前為止,我有
return [str(x) for i in range(1,n+1) for x in itertools.combinations(alphabet,i)]
但是itertools.combinations
返回列表[('a',), ('b',), ('c',), ('a', 'b'), ('a', 'c'), ('b', 'c')]
我應該如何實現所需的解決方案?
您可以連接itertools
返回的所有字符串:
result = map("".join, (comb for i in range(1, n+1) for comb in itertools.combinations(alphabet, i)))
這等效於在列表理解內調用"".join
:
result = ["".join(comb) for ...]
"".join(iterable)
連接從可迭代對象檢索的所有字符串:
"".join(('a', 'b', 'c')) == "abc"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.