python - Python3在每次循环后删除列表中的n个元素
问题描述
我可以一次请求 250 种产品的库存。大约有 7500-8000 种产品,但数量每天都在变化。所以我尝试请求 250 个产品,删除它们并再次执行此操作,直到我的 list(all_sku) 包含少于 250 个项目,所以我知道这是我的最后一个请求。
听起来很简单,但今天有 7697 件商品,但我只获得 7250 件商品的库存。
start_time = time.time()
for i in range(0, 40):
all_values = []
time_now = time.time()
time.sleep(10)
if time_now - start_time >= 480:
stock_values = xxx.get_stockforitems(all_sku[:250], session_master)
all_values.append(stock_values)
print(len(all_sku), 'before deleting first 250 elements')
del all_sku[:250]
print(len(all_sku), 'after deleting first 250 elements')
else:
stock_values = xxx.get_stockforitems(all_sku[:250], session_master)
all_values.append(stock_values)
print(len(all_sku), 'before deleting first 250 elements')
del all_sku[:250]
print(len(all_sku), 'after deleting first 250 elements')
if len(all_sku) <= 250:
stock_values = xxx.get_stockforitems(all_sku[:len(all_sku)], session_master)
all_values.append(stock_values)
print(len(all_sku), 'values remaining')
del all_sku[:len(all_sku)]
print(len(all_sku), 'after deleting elements')
break
控制台输出:
1187 before deleting first 250 elements
937 after deleting first 250 elements
937 before deleting first 250 elements
687 after deleting first 250 elements
687 before deleting first 250 elements
437 after deleting first 250 elements
437 before deleting first 250 elements
187 after deleting first 250 elements
187 values remaining
0 after deleting elements
可能错误在if < 250
条件
这是我第一次使用break
语句,也许这是我万恶之源
解决方案
它看起来不错,输出似乎与预期的一样。我的猜测是,也许您没有从get_stockforitems
. 我会添加您每次获得多少物品的打印输出。
您的代码存在一些不影响正确性的问题:if 和 else 分支看起来相同。他们为什么在那里?这range(0, 40)
似乎是随机的 - 为什么不呢while len(all_sku) > 0:
。
此外,所有这些删除业务似乎都很混乱,为什么不呢
for i in range(0,len(all_sku),250):
batch = all_sku[i:i+250]
get_stockforitems(batch...
推荐阅读
- networking - 使用 Ansible 在设备网络上执行命令
- kivy - 在 kivy,滚动视图中的 kv 文件中,我不知道它只是说“无效语法”的错误是什么 :( 但据我说它是对的
- javascript - 反应电子邮件地址格式验证
- c++ - 在给定模板模板谓词的情况下过滤类型的元组列表
- typescript - 将 React Native 项目中的视图引用与打字稿相关联时出现问题。解决了
- jenkins - 如何在自由式作业中访问管道名称
- python - Excel 文件损坏或错误扩展错误 openpyxl & writerxlsx
- multithreading - 如何在 Powershell 中为函数执行线程化?
- go - 指向特定日志级别的 Logrus 记录器指针
- asp.net - 如何在 CheckBox Click Asp.Net 上重新绑定 FullCalender