如何将其转换为python中的字符串列表

时间:2019-06-26 09:32:45

标签: python list

我是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)

1 个答案:

答案 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))