如何从文件中读取数据以将数据存储到两个一维列表中?

时间:2014-10-01 15:00:26

标签: python list

我是python的新手,无法在线找到它。

给定一个包含以下内容的.txt文件:

Apple  : Red 
Orange : Orange 
Banana : Yellow 

如何获得[Apple, Orange, Banana][Red, Orange, Yellow]两个列表? 我在互联网上看到了一些例子,但结果是一个二维列表。

with open('fruit.txt') as f:
   List= [x.strip().split(':') for x in f.readlines()]
print List  

3 个答案:

答案 0 :(得分:5)

您可以简单地zip分割线,然后将它们解压缩为两个变量,例如

with open('fruit.txt') as f:
    fruits, colors = zip(*(line.strip().split(":") for line in f))

print fruits, colors
# ('Apple ', 'Orange', 'Banana') (' Red', ' Orange', ' Yellow')

答案 1 :(得分:1)

fruit = []
color = []
with open('fruit.txt') as f:
    for line in f:
        fruit.append(line.split(':')[0].strip())
        color.append(line.split(':')[1].strip())

答案 2 :(得分:0)

导入 csv 库,您可以在其中读取行并分隔每行中的单词/字段。 在您的情况下,它是":"

使用列表方法 list.append()

将每个单词/字段附加到您想要的列表中
import csv
a=[]
b=[]
with open('fruit.txt') as f:

         for row in csv.reader(f, delimiter=":"):

              a.append(row[0])
              b.append(row[1])


 print a
 print b