我比较几个算法。每个算法(类)收到相同的列表。问题在于,对列表和其他类的第一类影响无法在该列表上工作。 有没有什么聪明的方法来做到这一点?如何使用一个列表上的几个类没有影响的列表
下面是一个代码:
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