【发布时间】:2014-09-28 13:11:56
【问题描述】:
所以我一直试图让这两个函数工作,当我单独执行它们时,它们工作,但是当我使用 elif 函数组合这两个函数时,它只运行第一个函数并打印出位置列表,以及错误提示“neighbour_list 未定义”
这是我的代码
my_file=open("test_graph_1.txt","r")
x=[]
y=[]
nodenumber=[]
positionx=[]
positiony=[]
for row in my_file:
value=row[:-1]
my_list=value.split(",")
if len(my_list)==3:
nodenumber.append(int(my_list[0]))
positionx.append(int(my_list[1]))
positiony.append(int(my_list[2]))
nodenumber1 =[(nodenumber[a],positionx[a],positiony[a]) for a i range(len(nodenumber))]
position_list=tuple(nodenumber1)
elif len(my_list)==2:
x.append(int(my_list[0]))
y.append(int(my_list[1]))
l1 = [(x[i] , y[i]) for i in range(len(x))]
l2 = [(y[i] , x[i]) for i in range(len(x))]
l1.extend(l2)
neighbour_list=[[l[0] for l in l1 if l[1] == j] for j in range(len(x))]
print("position_list",position_list)
print("neigh",neighbour_list)
但是当我打印代码时,位置列表会很好,但 neighbour_list 会像这样出现:[[4, 1], [0, 4, 2], [1, 3], [2, 5, 4 ], [3, 0, 1], [3], []] 额外的空字符串,它不应该在那里,但在那之前一切都很好
【问题讨论】:
-
那么你的函数在哪里?
-
对不起,我还没有掌握该语言,我的意思是我的 2 个不同的 if 循环来获取 position_list 和 neighbour_list
-
else my_list[2] == "":应该引发了 SyntaxError。你的意思是elif ...? (或者只是else:?) -
是的,我也用 elif 试过,但没用,所以我尝试了 else
-
事情是它通过第一个 if 循环但不通过 elif 循环
标签: python python-3.x tuples nearest-neighbor neighbours