首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Python列表拆分为5组,然后打印

将Python列表拆分为5组,然后打印
EN

Stack Overflow用户
提问于 2014-06-22 02:58:04
回答 2查看 1.6K关注 0票数 0

我有一个清单项目,看起来如下:

代码语言:javascript
复制
dblist=['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve']

它可能有超过12个项目(可能是无限的)。--我想把这个列表分成五个组打印出来,并希望我的输出如下所示:

代码语言:javascript
复制
env1: one two three four five
env2: six seven eight nine ten
env3: eleven twelve

我怎样才能做到这一点?

我发现了一些很好的技巧,似乎能够完成这项工作,但我似乎无法使它与我的代码一起工作。例如,以下内容似乎可以做我想做的事情:

代码语言:javascript
复制
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]))

具有以下产出:

代码语言:javascript
复制
['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?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-22 03:02:32

使用str.join()

代码语言:javascript
复制
for group in n_split(dblist, 5):
    print ' '.join(group)

您可以添加enumerate()以添加计数器:

代码语言:javascript
复制
for count, group in enumerate(n_split(dblist, 5), 1):
    print 'env{}: {}'.format(count, ' '.join(group))

演示:

代码语言:javascript
复制
>>> 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
票数 3
EN

Stack Overflow用户

发布于 2014-06-22 03:05:28

这是你想要的吗?

代码语言:javascript
复制
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']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24347740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档