列表切片的迭代

2024-04-23

我想要一个算法来迭代列表切片。切片大小在函数外部设置并且可以不同。

在我看来,它是这样的:

for list_of_x_items in fatherList:
    foo(list_of_x_items)

有没有办法正确定义list_of_x_items或者使用 python 2.5 执行此操作的其他方法?


编辑1:澄清“分区”和“滑动窗口”术语听起来都适用于我的任务,但我不是专家。所以我会更深入地解释这个问题并添加到问题中:

FatherList 是我从文件中获取的多级 numpy.array 。函数必须找到系列的平均值(用户提供系列的长度)为了求平均值,我使用mean()功能。现在进行问题扩展:

edit2:如何修改您提供的函数来存储额外的项目,并在下一个fatherList输入到该函数时使用它们?

例如,如果列表长度为 10 并且块的大小为 3,则存储列表的第 10 个成员并将其附加到下一个列表的开头。


Related:

  • 以块的形式迭代列表的最“Pythonic”方式是什么? https://stackoverflow.com/questions/434287/what-is-the-most-pythonic-way-to-iterate-over-a-list-in-chunks

如果你想将列表分成多个部分,你可以使用这个技巧:

list_of_slices = zip(*(iter(the_list),) * slice_size)

例如

>>> zip(*(iter(range(10)),) * 3)
[(0, 1, 2), (3, 4, 5), (6, 7, 8)]

如果项目数量不能除以切片大小,并且您想用 None 填充列表,您可以执行以下操作:

>>> map(None, *(iter(range(10)),) * 3)
[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, None, None)]

这是一个肮脏的小伎俩


好的,我将解释它是如何工作的。解释起来会很棘手,但我会尽力。

首先是一些背景:

在 Python 中,您可以将列表乘以一个数字,如下所示:

[1, 2, 3] * 3 -> [1, 2, 3, 1, 2, 3, 1, 2, 3]
([1, 2, 3],) * 3 -> ([1, 2, 3], [1, 2, 3], [1, 2, 3])

And an iterator http://docs.python.org/library/functions.html?highlight=iter#iter对象可以像这样被消耗一次:

>>> l=iter([1, 2, 3])
>>> l.next()
1
>>> l.next()
2
>>> l.next()
3

The zip http://docs.python.org/library/functions.html#zip函数返回一个元组列表,其中第 i 个元组包含每个参数序列或可迭代对象中的第 i 个元素。例如:

zip([1, 2, 3], [20, 30, 40]) -> [(1, 20), (2, 30), (3, 40)]
zip(*[(1, 20), (2, 30), (3, 40)]) -> [[1, 2, 3], [20, 30, 40]]

zip 前面的 * 用于解压参数。您可以找到更多详细信息here http://docs.python.org/tutorial/controlflow.html#unpacking-argument-lists. So

zip(*[(1, 20), (2, 30), (3, 40)])

实际上相当于

zip((1, 20), (2, 30), (3, 40))

但适用于可变数量的参数

现在回到技巧:

list_of_slices = zip(*(iter(the_list),) * slice_size)

iter(the_list)-> 将列表转换为迭代器

(iter(the_list),) * N-> 将生成对 the_list 迭代器的 N 引用。

zip(*(iter(the_list),) * N)-> 将把这些迭代器列表送入 zip 中。这又会将它们分组为 N 大小的元组。但由于所有 N 个项目实际上都是对同一个迭代器的引用iter(the_list)结果将被重复调用next()在原始迭代器上

我希望这能解释它。我建议您采用更容易理解的解决方案。我只是想提及这个技巧,因为我喜欢它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列表切片的迭代 的相关文章

  • Pandas - 按每个可能的键组合聚合

    我有一个 DataFrame Pandas 我想通过 A B C 和 D 列的组合尽可能按数据进行分组 假设它具有以下形式 A B C D E F G 0 Y X Y Z 1 2 7 1 Y X Y Z 3 4 8 2 X Y U V 1
  • 如何在 Python 中获得两个变量的逻辑异或?

    你如何获得逻辑异或 http en wikipedia org wiki Exclusive orPython 中的两个变量 例如 我有两个希望是字符串的变量 我想测试其中只有一个包含 True 值 不是 None 或空字符串 str1 r
  • 在 Chaquopy 中转换数组和张量

    我该怎么做呢 我看到你的帖子说你可以将 java 对象传递给 Python 方法 但这不适用于 numpy 数组和 TensorFlow 张量 以下以及其各种变体是我尝试过的 但没有成功 double anchors new double
  • Pandas 过滤 - 非索引列上的 Between_time

    我需要过滤掉特定时间的数据 DataFrame 函数 Between time 似乎是执行此操作的正确方法 但是 它仅适用于数据帧的索引列 但我需要原始格式的数据 例如 数据透视表期望日期时间列具有正确的名称 而不是索引 这意味着每个过滤器
  • Python 包?

    好吧 我认为无论我做错了什么 它可能都是显而易见的 但我无法弄清楚 我已经阅读并重新阅读了有关包的教程部分 我唯一能想到的是这不起作用 因为我直接执行它 这是目录设置 eulerproject init py euler1 py euler
  • 在 Django 中上传文件

    我在 Django 1 6 版本 中上传文件时遇到问题 当我尝试做的时候new file data save 在我的views py 中我收到此错误 quiz patent 22 medical record 2 exams 处的属性错误
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • 为什么 PySpark 中的 agg() 一次只能汇总 DataFrame 的一列? [复制]

    这个问题在这里已经有答案了 对于下面的数据框 df spark createDataFrame data Alice 4 300 Bob 7 677 schema name High 当我尝试找到最小值和最大值时 我只得到输出中的最小值 d
  • Python Pandas groupby、排名,然后根据自定义排名分配值

    问题设置 大熊猫数据框 df pd DataFrame Group A A A A A A A A A Subgroup Group 1 Group 1 Group 1 Group 1 Group 1 Group 1 Group 2 Gro
  • 为线条指定颜色

    我试图在 matplotlib 中绘制可变数量的行 其中 X Y 数据和颜色存储在 numpy 数组中 如下所示 有没有办法将颜色数组传递到绘图函数中 这样我就不必采取额外的步骤来单独为每条线分配颜色 我是否应该将 RGB 颜色数组转换为另
  • 为 pandas 数据框中的两列创建邻接矩阵

    我有一个以下形式的数据框 index Name A Name B 0 Adam Ben 1 Chris David 2 Adam Chris 3 Ben Chris 我想获得邻接矩阵Name A and Name B ie Adam Ben
  • 如何判断Python对象是否是字符串?

    如何检查 Python 对象是否是字符串 常规字符串或 Unicode Python 2 Use isinstance obj basestring 对于要测试的对象obj Docs https docs python org 2 7 li
  • UTF-8 在 Python 日志记录中,如何?

    我正在尝试使用 Python 的日志记录包将 UTF 8 编码的字符串记录到文件中 作为一个玩具示例 import logging def logging test handler logging FileHandler home ted
  • Python Pandas:将参数传递给 agg() 中的函数

    我试图通过使用不同类型的函数和参数值来减少 pandas 数据框中的数据 但是 我无法更改聚合函数中的默认参数 这是一个例子 gt gt gt df pd DataFrame x 1 np nan 2 1 y a a b b gt gt g
  • Google App Engine 开发服务器中的 PyCrypto“ImportError:无法导入名称 blockalgo”

    我有一个使用 PyCrypto 使用 AES 加密字符串的函数 当我在单元测试中调用该函数时 一切正常 在生产环境中 它也运行得很好 但是 在GAE开发服务器上调用该函数时 会抛出错误 ImportError 无法导入名称blockalgo
  • 默认可变参数的惯用方式

    在 python 中 如果直接将可变类型设置为默认参数 则会出现众所周知的边缘情况 def foo x return x y foo y append 1 print foo 通常的解决方法是将参数默认为None然后将其放入体内 然而 有
  • 在 Mac OS x 10.7.5 中运行 Scrapy 所需的文件,使用 Python 2.7.3 IEPD_free(32 位)

    我是第一次测试 scrapy 使用命令安装后 sudo easy install U scrapy 一切似乎都运行正常 但是 当我运行时 scrapy startproject tutorial 我得到以下信息 luismacbookpro
  • 如何使用 Misc.imread 将图像分割为红色、绿色和蓝色通道

    我正在尝试将图像切片为 RGB 但在绘制这些图像时遇到问题 我使用此函数从某个文件夹获取所有图像 def get images path image type image list for filename in glob glob pat
  • 过早退出 Qualtrics 中的循环和合并块

    我目前正在进行一项 Qualtrics 调查 受访者必须解决一长串字谜问题 然后回答一些人口统计问题 为了使变位词部分更容易 我使用了循环和合并块 第一个字段是要解决的变位词 第二个字段是变位词的解决方案 因此调查可以根据受访者的答案来检查
  • 开始使用 Python 在 CSV 的特定行上读写

    我有一个 CSV 文件 如下所示 COL A COL B 12345 A 1 B 2 C 3 如何读取该文件并将其写回新文件 但只写第二行 行 我希望输出文件包含 12345 A 1 B 2 C 3 Thanks 下面读取您的 csv 提取

随机推荐

  • 当模型中的属性发生更改时收到通知

    对于是否INotifyPropertyChanged是否应该在模型中实现 我认为它应该在 ViewModel 中实现 但我不知道它是如何实现的 stackoverlow com 上到处都提到了同样的想法 在 MVVM 模型中 模型应该实现
  • 提供 REST Web 服务的 JEE6 企业应用程序应该如何组织?

    从一个月前开始 我正在努力学习宁静的网络服务 现在我已经练习了语法并且理解了概念 我决定制作一个非常简单的企业应用程序 其中包括 EJB JPA 和 REST 我正在付出巨大的努力来尝试了解组织这种系统的最佳方式是什么 如果在该领域有经验的
  • Haskell 重叠/不连贯的实例

    我知道这段代码有点傻 但有人可以解释为什么吗isList 42 回报True然而isList2 42 prints False 以及如何防止这种情况发生 我想更好地理解一些更晦涩的 GHC 类型扩展 我认为这将是一个有趣的例子 LANGUA
  • 如何通过单击使 java Module JAR 执行

    我在 Windows 7 上使用 OpenJDK 11 和 OpenJFX 11 我的 IDE 是 Netbeans 9 我复制了以下教程 由 NetbeansVideos 发布 JDK 11 OpenJFX Apache Ant 和 Ap
  • Angular 7 - 浏览器刷新始终重定向到主页

    浏览器刷新后将用户保留在同一页面上的最佳方法是什么 Example 用户位于www domain com page1 http www domain com page1 当他刷新浏览器时 路由器重定向到www domain com home
  • PHP“记住我”安全漏洞?

    我正在编写一个配备 记住我 的登录表单 到目前为止 我读过的教程 部分是为了确保我做得正确 都说将加密的密码存储在 cookie 中与用户名 然后 每次 PHP 检查当前用户是否未登录时 检查他们的 cookie 并查找这些值 如果用户名与
  • 使用 pandas.read_json 时出现 ValueError

    我制作了一个 250MB 的 json 文件 应如下所示 A uniquevalue0 B 1 2 3 A uniquevalue1 B 1 A uniquevalue2 B 1 2 3 4 其中 B 值可以是变量 len gt 1 Thi
  • 在没有实际的 SQL Server 数据库启动和运行的情况下,我将如何配置工作量测试工具来模拟实体框架的 DbContext?

    我们团队的应用程序开发涉及使用工作量测试工具来模拟我们的实体框架的 DbContext 然而 工作量测试工具似乎需要查看应用程序使用的实际 SQL Server 数据库 以便模拟我们的实体框架的 DbContext 这似乎违反了正确的单元测
  • 如何在结构上使用 offsetof() ?

    我想要 offsetof 参数行mystruct1 我试过了 offsetof struct mystruct1 rec structPtr1 u line line and also offsetof struct mystruct1 l
  • 使用 asp.net core 删除所需的验证

    我有一个客户需要表单上有两个按钮 保存未完成表格进度的表格 因此 此表单仍然需要验证字段 但会忽略所需的验证 另一个按钮将需要运行包含必填字段的完整验证 我正在使用库存标准 asp net core 项目 我相信该项目使用 jquery v
  • IE 不会在使用 window.open 创建的窗口中加载 PDF

    问题就在这里 仅发生在 Internet Explorer IE 中 我有一个页面 其中包含指向几种不同类型文件的链接 这些文件中的链接执行一个 Javascript 函数 该函数打开一个新窗口并加载特定文件 这非常有效 除非我需要在新窗口
  • onProviderEnabled 不起作用?

    为了在 GPS 和网络位置提供商之间切换 我只是尝试了这样的方式 以确定何时禁用一个提供商 切换到另一个提供商 但是我的onProviderEnabled 没有被调用 public void onProviderDisabled Strin
  • 正则表达式时区

    我需要一个有效时区的正则表达式 尝试了以下一个 但我不确定 请帮我找出以下正则表达式中的错误 Edited 这里冒号和分钟是可选的 我怎样才能将其更改为强制 如果没有分钟 用户应输入 00 05 00 请帮我解决这个问题 var chkzo
  • 如何将 Git 补丁应用到具有不同名称和路径的文件?

    我有两个存储库 其中 我对文件进行了更改 hello test 我提交更改并从该提交创建补丁git format patch 1 HEAD 现在 我有第二个存储库 其中包含一个与 hello test 内容相同的文件 但以不同的名称放置在不
  • 具有颜色渐变的 3D 散点图,其中颜色取决于计数

    我有一个包含点的数据框 其中包括点的 x y 和 z 坐标以及 计数 每个数据点的数字在 1 到 187 之间 我想将 计数 与颜色渐变相关联 例如1是绿色 187是红色 然后用x y和z坐标绘制数据点的散点图 其中每个数据点的颜色都被编码
  • ECMAScript 规范是否允许 Array 成为“超类”?

    我正在寻找任何迹象表明 超类化 内置类型是否有效根据规格 也就是说 给定任何假设的 ECMAScript 一致实现 超类化 内置函数是否会通过影响类构造函数的创建算法来破坏运行时 超一流 我创造的一个术语 指的是一个类 其通过构造它或将其作
  • Cookie 未设置或首次不起作用

    在每个页面上 我都设置了一个 cookie 来为与该会话对应的标题按钮着色 问题是 当我第一次在不同的部分打开页面时 cookie 仍然是旧的 彩色按钮也是如此 然后 如果我再次单击同一按钮 则 cookie 会被正确设置 为什么 这是我的
  • 为什么苹果设备在自己的播放器中播放html5视频?

    我尝试了不同的 html 播放器并使用 html5 视频标签 然而 苹果设备 ipod touch 4 iphone 4 ipad 在其中显示 html5 视频自己的球员 我的主要目标是在视频上显示叠加广告 我决定借助绝对定位和 z ind
  • iOS4:如何使用视频文件作为 OpenGL 纹理?

    我正在尝试将视频文件的内容 暂时不包含音频 显示到 OpenGL 中的 UV 映射 3D 对象上 我已经在 OpenGL 中做了相当多的工作 但不知道从哪里开始处理视频文件 而且大多数示例似乎都是从相机获取视频帧 这不是我想要的 目前我觉得
  • 列表切片的迭代

    我想要一个算法来迭代列表切片 切片大小在函数外部设置并且可以不同 在我看来 它是这样的 for list of x items in fatherList foo list of x items 有没有办法正确定义list of x ite