我对我编写的一些python代码有疑问:
def read_graph_from_file(filename):
txtfile = open(filename, "rU")
node_memory = 0
neighbour_list = 0
for entry in txtfile:
entry_without_newline = entry.replace('\n',"")
columns = entry_without_newline.replace(','," ")
columns = columns.split(" ")
number_of_columns = len(columns)
if number_of_columns == 2:
neighbour_list = columns
neighbour_list.sort()
if node_memory == float(neighbour_list[0]):
y = neighbour_list[1]
print y
我想要的输出是一个列表,即[1,4]。相反,我收到了多行的字符,即:
1
4
我想知道如何纠正这个问题?
答案 0 :(得分:1)
如果您想在列表中使用它们,则必须创建一个列表变量,然后将结果附加到其中。完成功能后,您应该返回此列表。
def read_graph_from_file(filename):
txtfile = open(filename, "rU")
node_memory = 0
neighbour_list = 0
lst = []
for entry in txtfile:
entry_without_newline = entry.replace('\n',"")
columns = entry_without_newline.replace(','," ")
columns = columns.split(" ")
number_of_columns = len(columns)
if number_of_columns == 2:
neighbour_list = columns
neighbour_list.sort()
if node_memory == float(neighbour_list[0]):
y = neighbour_list[1]
lst.append(y)
return lst
然后,如果你运行这样的功能:
print read_graph_from_file(<fileName>)
您将获得所需的结果:
[1,4]
或者,您可以直接在函数末尾打印结果列表。然后,您不必使用print
调用该函数。