Python,从文本文件创建并行列表

时间:2017-04-24 01:41:11

标签: python list text-files

我目前有文本文件(每行的值由制表符分隔):

1935    32.1
1940    30.5
1945    24.4
1950    23.0
1955    19.1
1960    15.6
1965    12.4
1970    9.7
1975    8.9
1980    7.2

最终我希望创建两个并行列表:

listX=[1935, 1940, 1945, 1950, 1955, 1960, 1965, 1970, 1975, 1980]
listY=[32.1, 30.5, 24.4, 23.0, 19.1, 15.6, 12.4, 9.7, 8.9, 7.2]

无论出于何种原因,我都会在这个问题上留空。创建这些单独列表的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

如果您对x和y是元组很好,可以使用zip

import io
with io.open('file.txt', encoding='utf-8') as f:
   x, y = zip(* (l.split() for l in line))

如果必须是列表,请将元组转换为列表:

with io.open('file.txt', encoding='utf-8') as f:
   x, y = map(list(zip(* (l.split() for l in line))))

或手动取值:

with io.open('file.txt', encoding='utf-8') as f:
   values = [l.split() for l in line]
x = [v[0] for v in values]
y = [v[1] for v in values]

答案 1 :(得分:0)

data = open('file.txt').readlines()

listX = [d.split('\t')[0] for d in data]
listY = [d.split('\t')[1] for d in data]

答案 2 :(得分:0)

fo = open("foo.txt", "r+")
str = fo.read()
# If you have a new line character at the end
str = str[:len(str)-1]
a = str.split('\n')
b = []
d = []
for i in a:
    x = i.split('\t')
    b.append(x[0])
    d.append(x[1])

b和d将是您需要的列表。