Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在新行上打印python列表的每n个索引?_Python_List_Printing_Split - Fatal编程技术网

如何在新行上打印python列表的每n个索引?

如何在新行上打印python列表的每n个索引?,python,list,printing,split,Python,List,Printing,Split,我试着打印出一个列表,每5个索引,它就会打印一行。例如,如果我有: [1,2,3,4,5,6,7,8,9,10] 产出将是: 1 2 3 4 5 6 7 8 9 10 到目前为止,我试过: lst = [1,2,3,4,5,6,7,8,9,10] for i in lst: if len(lst) > 5: print(lst,'\n') 但我得到的只是: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我试着打印出一个列表,每5个索引,它就会打印一行。例如,如果我有:

  [1,2,3,4,5,6,7,8,9,10]
产出将是:

  1 2 3 4 5
  6 7 8 9 10
到目前为止,我试过:

   lst = [1,2,3,4,5,6,7,8,9,10]

   for i in lst:
       if len(lst) > 5:
          print(lst,'\n')
但我得到的只是:

   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

   .......
我怎么能这样做


谢谢你的帮助

使用带有步骤的for循环:

n_indices = 5
lst = [1,2,3,4,5,6,7,8,9,10]

for i in range(0, len(lst), n_indices):
    print(lst[i:i+n_indices])

>>>[1, 2, 3, 4, 5]
>>>[6, 7, 8, 9, 10]
如果您想对格式更感兴趣,可以使用参数解包,例如:
print(*list[i:i+n_index])
并以这种格式获得输出:

1 2 3 4 5
6 7 8 9 10
试试这个:

a = [1,2,3,4,5,6,7,8,9,10]
for i in [a[c:c+5] for c in range(0,len(a),5) if c%5 == 0]:
    print(*i)
输出将是:

1 2 3 4 5
6 7 8 9 10

您还可以用任何其他数字或变量替换
5

比其他答案更为惯用:

n = 5
lst = [1,2,3,4,5,6,7,8,9,10]

for group in zip(*[iter(lst)] * n):
    print(*group)

对于较大的列表,它也要快得多:

In [1]: lst = range(1, 10001)

In [2]: n = 5

In [3]: %%timeit
    ...: for group in zip(*[iter(lst)] * n):
    ...:     group
    ...:
236 µs ± 49.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [4]: %%timeit
    ...: for i in range(0, len(lst), n):
    ...:     lst[i:i+n]
    ...:
1.32 ms ± 184 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

您可以使用以下代码:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in range(0, len(a), 5):
    print(" ".join(map(str, a[i:i+5])))
它将为您提供所需的输出:

12345
6 7 8 9 10

您好,您介意我在回答中使用
*I
参数unpackaging进行格式设置吗?它比当前的
”好多了。join()
我得走了on@Primusa当然可以,我也会投票支持你的答案。没问题@Primusa,我认为如果你也看看
print
函数中的
sep=
,那就好了。这很好。像这样的
print(*i,sep='-')
它会打印:
1-2-3-4-5
我想他只想要格式化的输出。join:print(''.join(lst[i:i+index])…对他有好处:)如果
len(list)
不能被你的索引整除,你的输出是什么?
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in range(0, len(a), 5):
    print(" ".join(map(str, a[i:i+5])))