Python 如何使块可重复?

Python 如何使块可重复?,python,Python,我有一个函数,它获取一个名称列表,并读取其中确定的补丁号(n),我使用的是yield,我的问题是,当yield完成时,最后一个补丁的大小与其他补丁的大小不同。我想做的是向最后一个面片添加第一个面片中的一些元素(这样我就重复了),以便所有面片都具有相同的大小 first_names = ['Steve', 'Jane', 'Sara', 'Mary','Jack','Bob', 'Bily', 'Boni', 'Chris','Sori', 'Will', 'Won','Li'] def chu

我有一个函数,它获取一个名称列表,并读取其中确定的补丁号(n),我使用的是yield,我的问题是,当yield完成时,最后一个补丁的大小与其他补丁的大小不同。我想做的是向最后一个面片添加第一个面片中的一些元素(这样我就重复了),以便所有面片都具有相同的大小

first_names = ['Steve', 'Jane', 'Sara', 'Mary','Jack','Bob', 'Bily', 'Boni', 'Chris','Sori', 'Will', 'Won','Li']

def chunks(l, n):
    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for l of n items:
        yield l[i:i+n]

list(chunks(first_names, 5))

如果我们使用上面的调用,最后一个补丁将只有3个名称,我想做的是让它复制“steve”和“Jane”,并产生5个名称作为其他2个补丁。

一种快速方法是在用于产量的列表末尾添加
n
项:

first_names = ['Steve', 'Jane', 'Sara', 'Mary','Jack','Bob', 'Bily', 'Boni', 'Chris','Sori', 'Will', 'Won','Li']

def chunks(l, n):

    m = l + l[:n]

    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for the longer m list of n items:
        yield m[i:i+n]

print(list(chunks(first_names, 5)))
输出:

[['Steve', 'Jane', 'Sara', 'Mary', 'Jack'], ['Bob', 'Bily', 'Boni', 'Chris', 'Sori'], ['Will', 'Won', 'Li', 'Steve', 'Jane']]

一种快速方法是将
n
项添加到用于收益率的列表末尾:

first_names = ['Steve', 'Jane', 'Sara', 'Mary','Jack','Bob', 'Bily', 'Boni', 'Chris','Sori', 'Will', 'Won','Li']

def chunks(l, n):

    m = l + l[:n]

    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for the longer m list of n items:
        yield m[i:i+n]

print(list(chunks(first_names, 5)))
输出:

[['Steve', 'Jane', 'Sara', 'Mary', 'Jack'], ['Bob', 'Bily', 'Boni', 'Chris', 'Sori'], ['Will', 'Won', 'Li', 'Steve', 'Jane']]

像这样的事情怎么样:

first_names = ['Steve', 'Jane', 'Sara', 'Mary','Jack','Bob', 'Bily', 'Boni', 'Chris','Sori', 'Will', 'Won','Li']

def chunks(l, n):
    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for l of n items:
        c = l[i:i+n]
        if len(c) < n:
            c += l[:(n - len(c))]
        yield c

list(chunks(first_names, 5))
first_name=['Steve'、'Jane'、'Sara'、'Mary'、'Jack'、'Bob'、'Bily'、'Boni'、'Chris'、'Sori'、'Will'、'Won'、'Li']
def块(l,n):
#对于长度为l的范围内的项目i,
对于范围(0,len(l),n)内的i:
#为n个项目中的l个创建索引范围:
c=l[i:i+n]
如果len(c)
这样的东西怎么样:

first_names = ['Steve', 'Jane', 'Sara', 'Mary','Jack','Bob', 'Bily', 'Boni', 'Chris','Sori', 'Will', 'Won','Li']

def chunks(l, n):
    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for l of n items:
        c = l[i:i+n]
        if len(c) < n:
            c += l[:(n - len(c))]
        yield c

list(chunks(first_names, 5))
first_name=['Steve'、'Jane'、'Sara'、'Mary'、'Jack'、'Bob'、'Bily'、'Boni'、'Chris'、'Sori'、'Will'、'Won'、'Li']
def块(l,n):
#对于长度为l的范围内的项目i,
对于范围(0,len(l),n)内的i:
#为n个项目中的l个创建索引范围:
c=l[i:i+n]
如果len(c)