我正在制作一个程序,该程序需要一个看起来像这样的文本文件:
1
0
1
1
1
并将其转换为列表:
['1','0','1','1','1']
文件有400行,因此我想将其转换为20列乘20行的数组。
答案 0 :(得分:5)
只需使用切片将其每20个条目分块:
lines = [*range(1,401)]
rows_cols = [lines[i:i + 20] for i in range(0, len(lines), 20)]
答案 1 :(得分:0)
这会将字符保存在20列中,如果行数不等于20,则会创建一个少于20的元素列表并将其添加到主列表中
solu =[]
leng = 20
with open('result.txt','r') as f:
sol = f.readlines()
tmp = []
for i in sol:
if len(tmp)<leng:
tmp.append(i.strip('\n'))
else:
print(tmp)
solu.append(tmp)
tmp=[]
solu.append(tmp)
print(solu)
答案 2 :(得分:0)
一一检测出字符,同时计算检测到的字符数。有两种情况,一种是当您检测到字符且计数器小于20时,另一种情况是当您检测到不更新计数器的换行符时。因此,在第一种情况下,应该将检测到的字符分配给列表(同时更新列变量),而在另一种情况下,如果计数器较小,则跳过换行符并继续文本文件的下一个字符大于20。如果计数器为20,则只需更新代表列表行的变量即可。