Identify which iteration you are on in a loop in python

前端 未结 5 576
走了就别回头了
走了就别回头了 2020-12-11 15:33

Basically I would like to be able to tell when I\'m on the Nth item in a loop iteration. Any thoughts?

d = {1:2, 3:4, 5:6, 7:8, 9:0}

for x in d:
    if last         


        
相关标签:
5条回答
  • 2020-12-11 16:10

    Use enumerate:

    #!/usr/bin/env python
    
    d = {1:2, 3:4, 5:6, 7:8, 9:0}
    
    # If you want an ordered dictionary (and have python 2.7/3.2), 
    # uncomment the next lines:
    
    # from collections import OrderedDict
    # d = OrderedDict(sorted(d.items(), key=lambda t: t[0]))
    
    last = len(d) - 1
    
    for i, x in enumerate(d):
        if i == last:
            print i, x, 'last'
        else:
            print i, x
    
    # Output:
    # 0 1
    # 1 3
    # 2 9
    # 3 5
    # 4 7 last
    
    0 讨论(0)
  • 2020-12-11 16:20
    list = [1,2,3]
    
    last = list[-1]
    
    for i in list:
        if i == last:
            print("Last:")
        print i
    

    Output:

    1
    2
    Last:
    3
    
    0 讨论(0)
  • 2020-12-11 16:23
    d = {1:2, 3:4, 5:6, 7:8, 9:0}
    
    for i,x in enumerate(d):
        print "last item :"+repr(x) if i+1==len(d) else x
    

    But the last item of an unordered dictionary doesn't mean anything

    0 讨论(0)
  • 2020-12-11 16:29
    for x in d.keys()[:-1]:
        print x
    if d: print "last item:", d.keys()[-1]
    
    0 讨论(0)
  • 2020-12-11 16:34

    How about using enumerate?

    >>> d = {1:2, 3:4, 5:6, 7:8, 9:0}
    >>> for i, v in enumerate(d):
    ...     print i, v              # i is the index
    ... 
    0 1
    1 3
    2 9
    3 5
    4 7
    
    0 讨论(0)
提交回复
热议问题