首页 > 解决方案 > 如何一次使用列表中的多个项目 - python

问题描述

我有一个清单:

mylist = [
"hello", "my", "name", "is", "frank", "and", "it", "is", "great", "to", "be", "here", "in", "this", "great", "country"

]

并且正在使用

for i in range(0,len(mylist)):
    print(mylist[i])

打印出每个项目,它的工作原理是在新行中打印出每个单词。

我想做的是能够通过更改变量的值将列表中的多个单词视为一个单词k

即我想代替它输出

hello                                                                                                                   
my                                                                                                                      
name                                                                                                                    
is                                                                                                                      
frank                                                                                                                   
and                                                                                                                     
it                                                                                                                      
is                                                                                                                      
great                                                                                                                   
to                                                                                                                      
be                                                                                                                      
here                                                                                                                    
in                                                                                                                      
this                                                                                                                    
great                                                                                                                   
country 

我想如果k = 2输出

hello my                                                                                                                      
name is                                                                                                                      
frank and                                                                                                                     
it is                                                                                                                      
great to                                                                                                                      
be here                                                                                                                    
in this                                                                                                                    
great country 

如果列表中有奇数个项目,最后一个单词应该单独成一行

如果k = 3那么一行应该有3个单词

有什么办法可以做到这一点

先感谢您

标签: pythonpython-3.x

解决方案


您可以使用这个分块配方

def chunks(L, n):
    """Yield successive n-sized chunks from L."""
    for i in range(0, len(L), n):
        yield L[i:i + n]

然后使用以下参数迭代str.join或使用序列解包:sepprint

for i in chunks(mylist, 2):
    print(' '.join(i))
    # alternatively, unpack and use sep argument:
    # print(*i, sep=' ')

# hello my
# name is
# frank and
# it is
# great to
# be here
# in this
# great country

推荐阅读