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