Skip to main content
 首页 » 编程设计

python之循环遍历列表并在找到第一个字符串时停止

2025年05月04日19shangdawei

我有一个列表,我想将存在于 top_row 和 bottom_row 之间的数据提取到另一个列表。 我知道 top_row 并且 bottom_row 对应于数据 ​​[0] = 最后一个整数数据(下一行由字符串组成,但也有一些我不感兴趣的整数行)。

我试过很多东西,但都没有成功:

for row,data in enumerate(fileData): 
    if row > row_elements: #top_row 
        try: 
            n = int(data[0]) 
            aux = True 
        except: 
            n = 0 
        while aux: #until it finds the bottom_row 
            elements.append(data) 

问题是它永远不会迭代第二行,如果我将 while 替换为 if 我得到第一列是整数的所有行。

文件数据是这样的:

*Element, type=B31H 
  1,   1,   2 
  2,   2,   3 
  . 
  . 
  . 
 359, 374, 375 
 360, 375, 376 
*Elset, elset=PART-1-1_LEDGER-1-LIN-1-2-RAD-2__PICKEDSET2, generate 

我只对第一列值等于 1 到 360 的行感兴趣。

非常感谢!

请您参考如下方法:

您发布的代码令人困惑。例如,“aux”是一个命名不当的变量。循环确实想从输入的特定元素开始,但它遍历所有内容,直到找到它想要的迭代,将可能是恒定时间的操作变成线性操作。让我们尝试重写它:

for record in fileData[row_elements:]: # skip first row_elements (might need +1?) 
    try: 
        int(record[0]) 
    except ValueError: 
        break # found bottow_row, stop iterating 
    elements.append(record)