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

标签 python list enumerate

我有一个表格对象。

我想检查第一行是否具有 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

关于Python 如何使用枚举和列表跳过第一次(即零次)迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32079807/

相关文章:

python - 如何连接到 boto3 中的区域

python - 如何获取 pandas 中某个项目的第一次和最后一次出现

c# - 将 Javascript 数组转换为 C# 列表

c# - 调试器未命中断点

python - 循环时查找并替换列表中的字符串值

arrays - (Swift)尝试遍历数组中的剩余元素,独立添加这些元素,并检查它们是否与给定的随机数匹配

python - 如何枚举单词的组合?

python - 将 PTVS 用于 "simple"WSGI 应用程序

python - 在base.html中使用数据库对象

python - 在 Python 字符串中的最后一个分隔符上拆分?