我目前有文本文件(每行的值由制表符分隔):
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]
无论出于何种原因,我都会在这个问题上留空。创建这些单独列表的最佳方法是什么?
答案 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将是您需要的列表。