python - 在python中将rubik_solver.Move.Move转换为字符串
问题描述
我知道使用起来很简单,str()
但这不起作用,因为我有某种奇怪的类型。
我正在使用该库rubik_solver
来计算一个 rubiks 立方体求解,结果该库为我提供了一个数组,其中包含类型rubik_solver.Move.Move
(查找我使用的type()
)。如何将此类型转换为字符串但将所有内容保留在数组中?我已经尝试过repr()
,str()
但我收到错误消息:
TypeError: list indices must be integers or slices, not Move
代码简化:
from rubik_solver import utils
cube = "wwywybyroboobbgbrybgyorygbogobbgrwywrgryorrgorwgwwowyg" # My Cube
solving = utils.solve(cube, "Kociemba") # Solve it
# Convert to string
for i in solving:
solving[i] = repr(solving[i]) #This creates the problem because the thing inside of the Array is not a String
解决方案
如果要将 rubik_solver.Move.Move 类型对象的数组转换为字符串数组。尝试这个
moves_as_strings = [str(x) for x in solving]
这会将数组“solving”中的每个元素转换为字符串,并使用这些字符串创建一个新数组,最后将结果保存在数组“moves_as_strings”中。
正如 Ted 所提到的,您的代码的问题是,您正在使用 rubik_solver.Move.Move 对象而不是整数来索引数组。即求解[L'] 而不是求解[0]。
for循环直接在python中给你元素,如果你想要元素的索引,你可以使用枚举。您的代码应该是:
for i, move in enumerate(solving):
solving[i] = str(move)
推荐阅读
- c# - C# ASP.NET AJAX - 随机数更改,但只希望在单击“新问题”按钮时更改
- amazon-s3 - Nomad 将下载的 S3 文件放在哪里?
- python - 从嵌套字典中获取值。Python
- python - 在递归函数中附加到列表的干净方法
- debugging - Pycharm 在调试模式下在 django 服务器中运行时返回非 asciii 错误,当我在正常模式下运行时工作正常
- dax - 当值改变时返回
- windows - 使用 Ansible 关闭 SMB 1.0/CIFS 文件共享支持?
- python - 从不同目录导入python模块
- python - Django:按每小时/每日浏览量对文章进行排序(趋势)
- c - 如何从文本文件中读取特殊字符?