我是python的新手,我需要根据列表中所有字母的所有可能排列(letters_guessed)创建一个字符串列表。但是问题是我得到了一个看起来像这样的列表:
[('a', 'b', 'c', 'd'), ('a', 'b', 'd', 'c'), ('a', 'c', 'b', 'd'), ('a', 'c', 'd', 'b'), ('a', 'd', 'b', 'c'), ('a', 'd', 'c', 'b'), ('b', 'a', 'c', 'd'), ('b', 'a', 'd', 'c'), ('b', 'c', 'a', 'd'), ('b', 'c', 'd', 'a'), ('b', 'd', 'a', 'c'), ('b', 'd', 'c', 'a'), ('c', 'a', 'b', 'd'), ('c', 'a', 'd', 'b'), ('c', 'b', 'a', 'd'), ('c', 'b', 'd', 'a'), ('c', 'd', 'a', 'b'), ('c', 'd', 'b', 'a'), ('d', 'a', 'b', 'c'), ('d', 'a', 'c', 'b'), ('d', 'b', 'a', 'c'), ('d', 'b', 'c', 'a'), ('d', 'c', 'a', 'b'), ('d', 'c', 'b', 'a')]
有没有办法将字符绑定成字符串?我尝试使用此:
for i in range(0, len(t)):
words_guessed = (''.join(t[i]))
但是创建了一个行列表,然后我无法将其转换为字符串列表
代码:
import itertools
letters_guessed = ['a', 'b', 'c', 'd']
t = list(itertools.permutations(letters_guessed, 4))
for i in range(0, len(t)):
words_guessed = (''.join(t[i]))
print(t)
答案 0 :(得分:2)
最简单的方法是使用map
将生成的元组连接成字符串:
list(map(''.join, t))
# ['abcd', 'abdc', 'acbd', 'acdb', 'adbc'...
请注意以下内容:
for i in range(0, len(t)):
words_guessed = (''.join(t[i]))
加入一个给定的元组的结果是您没有做任何事情。在每次迭代中,您只是覆盖words_guessed
。您可以遍历生成的排列并将它们append
迭代为words_guessed
作为列表:
words_guessed = []
for i in permutations(letters_guessed, 4):
words_guessed.append(''.join(i))