我有一个清单项目,看起来如下:
dblist=['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve']它可能有超过12个项目(可能是无限的)。--我想把这个列表分成五个组打印出来,并希望我的输出如下所示:
env1: one two three four five
env2: six seven eight nine ten
env3: eleven twelve我怎样才能做到这一点?
我发现了一些很好的技巧,似乎能够完成这项工作,但我似乎无法使它与我的代码一起工作。例如,以下内容似乎可以做我想做的事情:
def n_split(iterable, n, fillvalue=None):
num_extra = len(iterable) % n
zipped = zip(*[iter(iterable)] * n)
return zipped if not num_extra else zipped + [iterable[-num_extra:], ]
for ints in n_split(range(1,32), 5):
print(([str(i) for i in ints]))具有以下产出:
['1', '2', '3', '4', '5']
['6', '7', '8', '9', '10']
['11', '12', '13', '14', '15']
['16', '17', '18', '19', '20']
['21', '22', '23', '24', '25']
['26', '27', '28', '29', '30']
['31', '32', '33']如开头所示,如何使用此技术以五个组的形式打印dblist?
发布于 2014-06-22 03:02:32
for group in n_split(dblist, 5):
print ' '.join(group)您可以添加enumerate()以添加计数器:
for count, group in enumerate(n_split(dblist, 5), 1):
print 'env{}: {}'.format(count, ' '.join(group))演示:
>>> def n_split(iterable, n, fillvalue=None):
... num_extra = len(iterable) % n
... zipped = zip(*[iter(iterable)] * n)
... return zipped if not num_extra else zipped + [iterable[-num_extra:], ]
...
>>> dblist=['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve']
>>> for group in n_split(dblist, 5):
... print ' '.join(group)
...
one two three four five
six seven eight nine ten
eleven twelve
>>> for count, group in enumerate(n_split(dblist, 5), 1):
... print 'env{}: {}'.format(count, ' '.join(group))
...
env1: one two three four five
env2: six seven eight nine ten
env3: eleven twelve发布于 2014-06-22 03:05:28
这是你想要的吗?
dblist=['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve']
for i in range(0,len(dblist),5):
print(dblist[i:i+5])
['one', 'two', 'three', 'four', 'five']
['six', 'seven', 'eight', 'nine', 'ten']
['eleven', 'twelve']https://stackoverflow.com/questions/24347740
复制相似问题