【问题标题】:Looping through a list of tables in python循环遍历python中的表列表
【发布时间】:2012-04-20 04:09:33
【问题描述】:

我有一个表列表,其中包含一些数据和一个在数据集上运行的 fitter 脚本。 fitter 生成一个拟合,然后输出一些拟合参数。我想自动化这个过程——运行一个 for 循环,循环遍历表中的部分元素并输出它们的拟合参数。 我可以使用以下代码在每个元素上运行 fitter:

import tables

from function.fitter import Fitter

hdf2 = tables.openFile('data.waveforms.hdf5')

for element in data.waveforms:

fitter = Fitter(element)

元素以这种方式命名:data0101、data0102、(用于集合一)...、data0201、data0202(集合号 2)等

我怎样才能只遍历集合号 1 的十个元素:例如 data0101、data0102、... data0110?

【问题讨论】:

    标签: python for-loop


    【解决方案1】:

    要么切片 (for ... in data.waveforms[:10]) 要么使用 itertools.islice()

    【讨论】:

    • 太好了,谢谢。我使用 islice() 修改了代码:for element in islice(data.waveforms, 1, 60): 所以我可以通过它们的编号(它们在表中的顺序)选择要在哪些元素上运行 fitter,但看起来 islice() 需要整数作为开始和停止条件。我可以告诉 islice() 从 data0101 开始并在 data0160 停止,而不是从元素 1 开始直到元素 60?
    • 很遗憾没有。您将不得不查看其他 itertools 函数,甚至可能需要查看自定义生成器。
    • itertools.takewhile 是检查元素名称的理想选择(前提是它们的顺序是这样的)。
    • 要使用takewhile(),我需要一个谓词来测试。所以我需要读取元素名称的最后四个字符并将它们与我的开始和停止条件进行比较?
    猜你喜欢
    • 2018-10-26
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2023-03-09
    • 2014-06-26
    相关资源
    最近更新 更多