当我运行我的程序时,我得到了这个错误,我不知道为什么。错误发生在if prt in migration_p[j][0] and dst in migration_p[j][1]
行上
migration_p = [(1, 3), (2, 4), (3, 3)]
link = {(1, 2): 200, (1, 3): 50, (2, 3): 100, (1, 4): 300, (2, 4): 100, (3, 4): 50}
source_servers = {1: [1, 2, 3], 2: [1, 2, 3]}
partition = {1: 200, 2: 200, 3: 500}
def time_qi(dst, prt):
global size, bandwidth, min_time, source
tqi_rsrc = []
indexes = []
for i in source_servers.keys():
if (i, dst) in link.keys():
bandwidth = link[i, dst]
for j in range(len(migration_p)):
if prt in migration_p[j][0] and dst in migration_p[j][1]:
size = partition[prt]
tqi_rsrc.append(bandwidth / size)
indexes.append(i)
min_time = min(tqi_rsrc)
index = np.argmin(tqi_rsrc)
source = indexes[index]
# print(source)
return min_time, source
print(time_qi(3, 1)[0])
prt
和migration_p[j][0]
都是整数。您必须使用==
而不是in
:in
用于检查iterable对象中是否存在值。如果要使用in
,必须执行以下操作:但请注意,这也可以匹配元组中的其他值。你知道吗
相关问题 更多 >
编程相关推荐