来自同一文本文件的两个单独的整数列表 Python

Two separate lists of ints in from the same text file Python

我在尝试从同一文本文件制作两个单独的整数列表时遇到问题。 感谢任何帮助。

代码:

a = []
b = []
f = open('input.txt', 'r')
for line in f.readlines():
    a.append(int(line[0].strip().split()))
    b.append(int(line[1].strip().split()))

input.txt 文件:

40 30 50 10
2 5 10 5

我想要的:

a = [40,30,50,10]
b = [2,5,10,5]
mega = []
f = open('input.txt', 'r')
for line in f:
    mega.append(list(map(int, line.split())))

这样你会得到一个列表列表,你可以根据需要进一步分离:

mega = [[40,30,50,10], [2,5,10,5]]

您的问题中没有逐行循环。每行转到一个单独的列表。

with open('input.txt') as infile:
    a = list(map(int, infile.readline().split()))
    b = list(map(int, infile.readline().split()))

你的每个整数列表都在同一行,所以你不需要遍历 f.readlines()。相反,拆分第一行,然后将字符串映射到整数并为第二个列表重复:

with open('input.txt', 'r') as f:
    a = list(map(int, f.readline().strip().split()))
    b = list(map(int, f.readline().strip().split()))
print(a)
print(b)

你可以试试这个:

with open( 'input.txt' ) as fin :
    text = fin.readlines()

a = list( map( int, text[0].split() ))
b = list( map( int, text[1].split() ))

这是我的方式,几乎没有硬编码。只在字典中创建列表。

rowDict = {"a":[],"b":[]}
f = open('test.txt', 'r')
for count,row in enumerate(f):
    rowDict[list(rowDict.keys())[count]].extend(list(map(int,row.strip().split())))

这是我的第二个例子

f = open('test.txt', 'r')
a = list(map(int,f.readline().strip().split()))
b = list(map(int,f.readline().strip().split()))

这是我的版本,保留了 f.readlines 并使用 extend 而不是 append 将映射到 int 列表的整行添加到空列表中:

a = []
b = []

f = open('input.txt', 'r')
line = f.readlines()
a.extend(map(int,(line[0].split())))
b.extend(map(int,(line[1].split())))
       
print(a)
print(b)