写CS224W colab1时,需要判断元组是否在列表内(边是否在边汇总列表中),因为是无向图但边列表只包含了一个方向的,查找的时候要把逆向的也考虑进去,即
def if_negative_edge(*edges):
i = 1
for edge in edges:
edge_back = (edge[1], edge[0])
if edge or edge_back in pos_edge_list:
print('edge{} can\'t be a negative edge'.format(i))
i += 1
else:
print('edge{} can be a negative edge'.format(i))
i += 1
返回的判断全是if判断为True,遂返回找原因。因if的判断优先级高于or,所以先执行if ‘edge’,一个常量恒为Ture,后执行or后面的,就变成了 True or X,恒为True。把or放在if判断之后即可,或使用elif。
def if_negative_edge(*edges):
i = 1
for edge in edges:
edge_back = (edge[1], edge[0])
if edge in pos_edge_list or edge_back in pos_edge_list:
print('edge{} can\'t be a negative edge'.format(i))
i += 1
else:
print('edge{} can be a negative edge'.format(i))
i += 1