首页 > 编程问答 >Python捕获一组中的1000个项目进行处理

Python捕获一组中的1000个项目进行处理

时间:2024-07-31 15:12:11浏览次数:15  
标签:python list range

我有一个包含数千条记录的大表(可能有 3,000 到 75,000 条记录),我将所有数字 ID 放入排序列表中。 我想一次有序地处理一组 1000 个 ID。 我如何优雅地获取前 1000 个和“标签”,设置为“223344 到 337788”(字典在这里有意义吗,或者只是列表捕获中的第一个/最后一个项目......以跟踪处理的集合) )? 依此类推,直到所有 ID 都在 1000 个 ID 的集合中(最后一个是余数)?我对熊猫一无所知,但看到过一个与熊猫有些类似的问题——这在这里有意义吗? 对于这个可能笨重的问题表示歉意 - 在我的头脑中仍然有点笨拙,可以在这里使用一个共鸣板。


可以使用简单的列表切片和循环来实现这一点。以下是如何操作:

def process_in_chunks(ids, chunk_size=1000):
  """
  将 ID 列表分成块并处理每个块。

  Args:
    ids: 要处理的 ID 列表。
    chunk_size: 每个块的大小。
  """

  for i in range(0, len(ids), chunk_size):
    chunk = ids[i:i + chunk_size]
    label = f"{chunk[0]} 到 {chunk[-1]}"
    # 处理当前块
    print(f"正在处理标签为“{label}”的块:{chunk}")

# 示例用法
ids = list(range(5234))  # 示例 ID 列表

process_in_chunks(ids)

此代码执行以下操作:

  1. 定义函数 process_in_chunks
  2. 接收 ID 列表 ( ids ) 和可选的块大小 ( chunk_size ,默认为 1000)。
  3. 使用 range(0, len(ids), chunk_size) 迭代 ID 列表,步长为 chunk_size
  4. 对于每个块:

    • 使用列表切片 ( ids[i:i + chunk_size] ) 提取当前块。
    • 使用 f-string 格式化创建标签 ( f"{chunk[0]} 到 {chunk[-1]}" )。
    • 打印标签和当前块(可以将其替换为的实际处理逻辑)。
  5. 示例用法:

  6. 创建一个示例 ID 列表 ( ids )。
  7. 使用示例 ID 列表调用 process_in_chunks 函数。

不需要 Pandas! 对于这种特定任务,基本 Python 列表操作就足够了,并且比使用 Pandas 更有效率。

关于标签:

  • 使用 f-string 格式化创建标签是一种简洁的方式来包含第一个和最后一个 ID。
  • 如果需要存储已处理块的标签以供以后使用,可以创建一个列表并将每个标签附加到其中。

例如:

processed_labels = []

def process_in_chunks(ids, chunk_size=1000):
  # ...(与之前相同的代码)...
  processed_labels.append(label)

这会将每个已处理块的标签添加到 processed_labels 列表中。

标签:python,list,range
From: 78814844

相关文章

  • 在 Python 中创建和/或检查编号变量的优雅方法
    我是一个试图学习Python的老家伙,所以我最后的编码经验是使用BASIC-不,不是VisualBasic。我理解一些与Python相关的概念,但我处于初级编码阶段,所以我使用“强力”逻辑编写了这个项目-基本上,将字符串分解为单个字母,然后用经典的“”测试每个字母猜单词类型的游戏。......
  • 使用法兰克福 API 和 Python 虚拟环境时出现 404 错误
    我正在VisualStudioCode中用Python制作货币转换器脚本,并且使用法兰克福API,它在几天前一直工作正常,直到现在每次我尝试获取API时都会收到404错误:|||输出:>response=requests.get(f"https://api.frankfurter.app/latest?amount={amount}&from={CF}&to={CT}")>......
  • 我的目标是检测车道并控制车辆保持在车道中央。使用Python
    我目前正在做一个项目,我是一个初学者。并且我需要找到一种方法来使用检测到的车道来控制我的项目车辆保持在两条线之间的中心。img1|||img2我有疑问的话题如下如何判断我的机器人车是否在车道中央?我们应该用什么方法来控制机器人的转向......
  • 【学习笔记】Matlab和python双语言的学习(主成分分析法)
    文章目录前言一、主成分分析法1.主成分分析法简介2.主成分分析法原理3.主成分分析法思想4.PCA的计算步骤二、代码实现----Matlab三、代码实现----python总结前言通过模型算法,熟练对Matlab和python的应用。学习视频链接:https://www.bilibili.com/video/BV1EK41187......
  • 修改anolist grub entry
    之前一直用ubuntu,切换到centos上感觉诸多不适宜。ubuntu切换kernel非常方便,只要grub-update即可,centos/anolist上比较麻烦,记一下。首先是把编好的kernel放到/boot下面,一般直接makeinstall即可;然后grub2-mkconfig-o/boot/grub/grub.cfg,这将会生成新的grubentry。如果要将新添......
  • 如何使用python输入提示具有相同参数类型但不同返回类型的函数?
    我有一个函数,它的返回类型是tuple[bool,set[int]|str]如果第0项是True,则第1项是结果set[int],否则第1项是一个str,显示失败的原因。是这样的defcallee(para_a:int)->tuple[bool,set[int]|str]:result=set([1,2,3])if......
  • 彻底卸载Python
        前言通常我们在一些软件的使用上有碰壁,第一反应就是卸载重装。所以有小伙伴就问我Python怎么卸载才能彻底卸载干净,今天这篇文章,小编就来教大家如何彻底卸载Python 软件卸载方法1:首先,在安装python时,下载了一个可执行文件,也就是Python的安装包,我们双击它,点击uninstal......
  • 如何使用 Azure Devops API (Python) 提取特定提交的文件内容?
    这就是我想要做的:每次对我的存储库中的特定分支进行提交时,我想提取该提交中更改的所有YAML文件,对其内容进行一些修改,然后将结果作为PR推送到一个新的、独立的分支。我已经弄清楚了这里的大部分步骤,但我陷入了解析提交文件内容部分。我已经尝试过get_item_content和......
  • 在Python中,为什么这个负浮点数能够通过非负while循环测试条件?
    在Python中工作收集用户输入输入需要非负在程序的另一部分成功使用了While条件但现在不明白为什么这个捕获有效输入的测试失败了。print("Howmanygramsofxyzarerequired?")xyz_string=input()xyz=int(float(xyz_string))whilex......
  • 【Python】正色表达式 - 验证罗马数字
    一、题目Youaregivenastring,andyouhavetovalidatewhetherit'savalidRomannumeral.Ifitisvalid,printTrue.Otherwise,printFalse.TraytocreatearegularexpressionforavalidRomannumeral.InputFormatAsinglelineofinputcontainin......