Skip to main content
 首页 » 编程设计

Python 如何使用枚举和列表跳过第一次(即零次)迭代

2025年05月04日32cmt

我有一个表格对象。

我想检查第一行是否具有 Test 的值,在这种情况下,我需要对表中的每一行执行一些操作。

否则,如果第一行没有 Test 的值,我需要跳过该行并对第 1 行及以后的行执行一些操作。

因为我既需要索引又需要行,所以我不得不使用enumerate,但似乎我使用它的方式很乱。在这里,我调用了两次 enumerate 并两次检查索引是否为 0。有更简洁的方法吗?

for i, r in enumerate(null_clipData.rows()): 
    if r[0].val == 'Test': 
        # Do something if the first row is Test 
        for index, row in enumerate(null_clipData.rows()): 
            if index == 0: 
                continue # But do anything the first time (stay in this loop though) 
            print(index, row) 
        break # All through with test row 
 
    if i == 0: 
        continue # Don't do anything with the first row if the value was not Test 
 
    print(i, r) # Do something with i and r 

请您参考如下方法:

按照 Kevin 的建议,您可以单独处理第一项,然后继续循环:

rows = iter(null_clipData.rows()) 
 
firstRow = next(rows) 
specialHandling = firstRow.val == 'Test' 
 
for i, r in enumerate(rows, start=1): 
    if specialHandling: 
        # do something special with r 
    else: 
        # do the normal stuff with r 

或者,您也可以将其保持在一个循环中:

specialHandling = False # default case 
for i, r in enumerate(null_clipData.rows()): 
    if i == 0: # first item 
        specialHandling = r == 'Test' 
        continue 
 
    if specialHandling: 
        # do something special with r 
    else: 
        # do the normal stuff with r