[英]Python program for rearranging an array swapping 2 at a time doesn't work, could someone help me?
这是我为Python程序编写的代码(请记住,我几天前从Internet上学过Python)。 在示例情况下,应该将输入的列表(例如,[3,2,4,1,5])重新排列为[1,2,3,4,5]。 由于某种原因,它不起作用,我无法弄清楚原因。 我尝试了很多不同的方法,但没有一种方法可行。 在这种情况下,程序返回与原始值相同的值。 这是代码:
#General purpose string solver (by 2swapping + sune combos)
def solvepermutation():
#Setup
global pos
pos = raw_input('Ingrese permutacion.\n')
orientation = raw_input('Ingrese orientacion.\n')
#Generating solved position
solved=[]
for i in range(len(pos)):
solved.append(int(i+1))
#Solving pos
solvepos()
#Printing pos solved
print(pos)
#Function which solves pos
def solvepos():
global pos
for z in range(len(pos)-1):
for q in range(len(pos)):
if pos[z] == q+1:
pos[z],pos[q]=pos[q],pos[z]
continue
else:
continue
solvepos()
操作,并且在global pos
,但是这是一个字符串-当你做if pos[z] == q+1:
q+1
是一个整数(从值的一个range
),但pos[z]
是一个字符串(输入的一个字符)。 这些永远不会相等,所以不会发生交换。
这段代码有很多问题,首先是内置了sort
,重新实现它是没有用的。 您也不会对已solved
列表或orientation
输入执行任何操作; 你应该使用参数和返回值,而不是尝试通过全局变量进行通信。 但最重要的是, 不要那样迭代 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.