Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python如何一次迭代列表100个元素,直到到达所有元素?_Python_Python 3.x_Python 3.6 - Fatal编程技术网

Python如何一次迭代列表100个元素,直到到达所有元素?

Python如何一次迭代列表100个元素,直到到达所有元素?,python,python-3.x,python-3.6,Python,Python 3.x,Python 3.6,给定一个函数process_list,它接受一个唯一ID列表,并将该列表发送到API端点进行处理。列表的限制是一次100个元素 如果我有一个超过100个元素的列表,我如何处理前100个元素,然后是下100个元素,直到到达n my_list = [232, 231, 932, 233, ... n] # first 100 process_list(my_list[:100]) def process_list(my_list): url = 'https://api.example.

给定一个函数process_list,它接受一个唯一ID列表,并将该列表发送到API端点进行处理。列表的限制是一次100个元素

如果我有一个超过100个元素的列表,我如何处理前100个元素,然后是下100个元素,直到到达n

my_list = [232, 231, 932, 233, ... n]
# first 100
process_list(my_list[:100])


def process_list(my_list):
    url = 'https://api.example.com'
    data = {'update_list': my_list}
    headers = {'auth': auth}
    r = requests.put(url, data=json.dumps(data), headers=headers)

尽量保持简单,因为我假设您是从Python开始的

迭代列表,每次迭代增加100

my_list=[i代表范围内的i(10123)]
对于范围内的i(0,len(我的列表),100)
进程列表(我的列表[i:i+100])
def过程清单(我的清单)
url='1〕https://api.example.com'
数据={'update_list':我的_list}
标题={'auth':auth}
r=requests.put(url,data=json.dumps(data),headers=headers)
关于如何使用范围,您有两个选项:

范围(开始、停止[步进])

范围(停止)


使用第一个选项,您可以遍历序列
0、100、200,

,以下是itertools文档中的一个配方,可能会有所帮助:

def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return zip_longest(*args, fillvalue=fillvalue)
像这样使用它:

def process_list(my_list):
    url = 'https://api.example.com'
    for group in grouper(mylist):
        data = {'update_list': list(group)}
        headers = {'auth': auth}
        r = requests.put(url, data=json.dumps(data), headers=headers)
你也可以使用

for i in range((len(my_list)//100)+1):
    process_list(my_list[i*100:(1+i)*100])

我被难住了。
[iter(iterable)]*n
中的什么导致每个迭代器跳过
n
元素?您能解释一下解决方案吗?