该程序应该做的是接受用户输入,生成一个collatz序列,然后从该序列中打印出每个项目,并在每个数字之间带有一个制表符,但是从列表中的6个元素之后,它将在下一行打印,依此类推最后一行(其余元素)不需要6。最后一部分是应该从序列中找到最大的数字。
我有要生成的序列,我可以找到最大的序列,我只是想不出如何进行间隔。
我尝试过的
(只需要打印第一张照片)
def display_sequence(sequence)
print()
for i in sequence:
print(i, end = " \t")
最佳答案
而不是遍历递增的索引序列,而是遍历0,...,5的重复周期。if
语句可以简化为条件表达式,以选择'\t
或'\n'
作为结束字符。
from itertools import cycle
for index, item in zip(cycle(range(1, 7)), sequence):
print(item, end='\t' if item < 6 else '\n')
或者,迭代每个切片的起始索引:
for s in range(0, len(sequence), 6):
print('\t'.join(sequence[s:s+6]))
itertools
模块的文档还提供了直接迭代切片sequence[0:6]
,sequence[6:12]
等的方法。关于python - 如何制作一个循环,每行打印一个列表的6个元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58506245/