簡體   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