python - 如何将其转换为 python 中的字符串列表
问题描述
我对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)
解决方案
最简单的方法是使用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))
推荐阅读
- arm - 无法组装 llc 使用 arm-none-eabi-as 生成的 .s 文件?
- docker - 在 docker 中启动进程后如何运行脚本?
- unity3d - 使用 GridLayoutGroup 时有没有办法从另一边出来?
- javascript - For循环在Django中的Javascript动态Html内容中
- php - 将查询结果转为超链接
- html - 动画 CSS 适用于除 safari 以外的所有浏览器
- linux - su 日志文件位置
- django - 如何使用 Django REST 框架呈现模板?
- hyperledger-fabric - 有人可以很好地类比如何理解超级账本结构及其所有组件吗?
- c# - 在 TopShelf 服务(.Net 框架)中使用 Autofac 将连接字符串注入 DbContext 类