从文本输入创建列表列表

问题描述 投票:0回答:1

我正在尝试创建一个列表,其中包含从.txt文件中读取的列表。优选地,内部列表很好地是整数

我创建了两个从文本文件接收器创建的变量,它是第一个和raw,它是来自[1:]的原始文本文件的一个切片

来自文本文件的示例输入

4,0,5,3,0,0,0,2,4,0,0,0,5,0,0,0,0

sink = 4

raw = ['0','5','3','0','0','0','2','4','0','0','0','5' ,'0','0','0','0']

第一个数字表示除法(4),随着列表变大或变小,井变化很大。所以我想创建像这样的东西g = [[0,5,3,0],[0,0,2,4],[0,0,0,5],[0,0,0,0 ]]

道歉我删除了我的尝试。

class Reader:
    #place holder for rawData
   rawData = []
   file = open("test4.txt")
   rawData = file.read()
   file.close()     
   rawData = rawData.split(',')

r = Reader()
sink = int(r.rawData[0])
source = 0 #(this is for calculations in other parts of the program)
raw = r.rawData[1:]
python
1个回答
4
投票

假设原始长度总是可以被水槽整除,这将为您提供所需的产品!

sink = 4
raw = ['0', '5', '3', '0', '0', '0', '2', '4', '0', '0', '0', '5', '0', '0', '0', '0']

g = [raw[i:i+sink] for i in range(0, len(raw), sink)]

print(g)

如果你不喜欢它,那么这就是循环:

sink = 4
raw = ['0', '5', '3', '0', '0', '0', '2', '4', '0', '0', '0', '5', '0', '0', '0', '0']

g = []
for i in range(0, len(raw), sink):
    g.append(raw[i:i+sink])

print(g)
© www.soinside.com 2019 - 2024. All rights reserved.