我比較幾個算法。每個算法(類)收到相同的列表。問題在於,對列表和其他類的第一類影響無法在該列表上工作。 有沒有什麼聰明的方法來做到這一點?如何使用一個列表上的幾個類沒有影響的列表
下面是一個代碼:
Lista = []
start = 54
for i in range(25):
liczba = random.randint(1,179)
if liczba not in Lista and liczba != start:
Lista.append(liczba)
else:
i -= 1
print "Lista: ", Lista
x = SSTF(Lista)
x.Symulacja(91) #<----- OK!
y = FCFS(Lista)
y.Symulacja(25) #<----- FCFS received epty list.
z = SCAN()
z.Symulacja(start, Lista)
w = C_SCAN()
w.Symulacja(start, Lista)
results = Result()
results.Add(x)
results.Add(y)
print Results
SSTF被去除來自收到,FCFS相同的列表元素。所以在做了SSTF算法之後,FCFS得到了空列表。我不明白爲什麼這個清單受到影響。我不在列表「Lista」上工作,但在init的SSTF中,我將「Lista」分配給其他列表。
對不起,如果我的問題不明確。我正在學python,這個問題多次打到我。
如果你擁有可卡因(我相信類)使他們純潔。如果沒有,使用不可變的,用元組替換你的列表? – Meitham 2014-11-22 16:11:14
我沒有自己的可調參數(正如我剛纔所說的,我剛剛學習python;))。元組無法在這種情況下工作。名單上的操作太多了。對我來說奇怪的是,在Python中分配意味着引用。因此List = List2 = [1,2,3]意味着List2上的某些操作在List上執行相同操作。有什麼辦法可以避免它? – 2014-11-22 16:30:03
用一個副本調用函數:'x = SSTF(Lista [:])'。 – Daniel 2014-11-22 16:33:26