如何将列表转换为20列数组

时间:2019-07-05 08:00:25

标签: python arrays list

我正在制作一个程序,该程序需要一个看起来像这样的文本文件:

  

1
  0
  1
  1
  1

并将其转换为列表:

['1','0','1','1','1']

文件有400行,因此我想将其转换为20列乘20行的数组。

3 个答案:

答案 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,则只需更新代表列表行的变量即可。