分配变量以拆分字符串

时间:2021-02-08 19:28:38

标签: python string split

我试图将一个字符串分成几个变量,最终将每个变量作为六个步进电机之一的指令发送。字符串的格式如下:

<块引用>

D2 R' D' F2 B D R2 D2 R' F2 D' F2 U' B2 L2 U2 D R2 U

问题是字符串中的步长(例如 D2 或 R' 或 B)的长度都是不同的,因此将步长用作固定长度会在回忆各个部分时出现问题(不同的长度意味着有时我会得到一个解决方案的一部分或一个空格然后是一个字母)。由于字符串中的步骤数量不同,因此使用解包之类的东西也不起作用。那么,我如何切割如下所示的字符串,以便将每个步骤分配给一个单独的变量?

通过查看上一个问题 (Python - split string into smaller chunks and assign a variable),我意识到我可以按照以下方式做一些事情:

finalstate = input("enter solution: ")
finalstate.split
step = 2
solution_steps = [finalstate[i:i+step] for i in range(0, len(finalstate),step)]

然后像这样调用解决方案的不同部分:

print(Solution_steps[0])

然而,在那个解决方案中,他们希望字符串按确定的长度分开,而我的会有所不同。

1 个答案:

答案 0 :(得分:1)

您需要通过在 split 后面加上 () 来调用它。它返回一个列表,您需要将其分配到某处。

finalstate = input("enter solution: ")
words = finalstate.split()
step = 2
solution_steps = [words[i:i+step] for i in range(0, len(words),step)]

solution_steps 的值:

[['D2', "R'"], ["D'", 'F2'], ['B', 'D'], ['R2', 'D2'], ["R'", 'F2'], ["D'", 'F2'], ["U'", 'B2'], ['L2', 'U2'], ['D', 'R2'], ['U']]