Python如何一次迭代列表100个元素,直到到达所有元素?
给定一个函数process_list,它接受一个唯一ID列表,并将该列表发送到API端点进行处理。列表的限制是一次100个元素 如果我有一个超过100个元素的列表,我如何处理前100个元素,然后是下100个元素,直到到达nPython如何一次迭代列表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.
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
元素?您能解释一下解决方案吗?