Python - 将多行转换为一行

时间:2014-09-28 02:05:46

标签: python function output

我对我编写的一些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

我想知道如何纠正这个问题?

1 个答案:

答案 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调用该函数。