将itertools.permutations的输出从元组列表转换为字符串列表

h1h*_*1h1 6 python string tuples list permutation

使用itertools置换函数后,列表中存在一些问题.

from itertools import permutations

def longestWord(letters):
    combinations = list(permutations(letters))
    for s in combinations:
        ''.join(s)
    print(combinations)

longestWord("aah")  
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

[('a', 'a', 'h'), ('a', 'h', 'a'), ('a', 'a', 'h'), ('a', 'h', 'a'), 
 ('h', 'a', 'a'), ('h', 'a', 'a')]
Run Code Online (Sandbox Code Playgroud)

我希望这是一个简单的列表,但它似乎是一个元组列表(?).任何人都可以帮助我格式化,所以它出现如下:

['aah', 'aha', 'aah', 'aha', 'haa', 'haa']
Run Code Online (Sandbox Code Playgroud)

jur*_*eza 9

from itertools import permutations

def longestWord(letters):
    return [''.join(i) for i in permutations(letters)]

print(longestWord("aah"))
Run Code Online (Sandbox Code Playgroud)

结果:

['aah', 'aha', 'aah', 'aha', 'haa', 'haa']
Run Code Online (Sandbox Code Playgroud)

一些建议:

  1. 不要在函数内部打印,而是返回并打印返回的值.
  2. 您对变量的命名combination并不好,因为组合与排列不同
  3. 你的连接没有做任何事情,join不会改变内联值,它返回字符串
  4. 函数名称不代表它的作用.最长的字?