繁体   English   中英

重新安排数组交换2的Python程序不起作用,有人可以帮助我吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM