code_junkie

How to access previous/next element while for looping?

Nov 12th, 2011
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. l=[1,2,3]
  2. for item in l:
  3. if item==2:
  4. get_previous(l,item)
  5.  
  6. def neighborhood(iterable):
  7. iterator = iter(iterable)
  8. prev = None
  9. item = iterator.next() # throws StopIteration if empty.
  10. for next in iterator:
  11. yield (prev,item,next)
  12. prev = item
  13. item = next
  14. yield (prev,item,None)
  15.  
  16. for prev,item,next in neighborhood(l):
  17. print prev, item, next
  18.  
  19. import collections, itertools
  20.  
  21. def window(it, winsize, step=1):
  22. """Sliding window iterator."""
  23. it=iter(it) # Ensure we have an iterator
  24. l=collections.deque(itertools.islice(it, winsize))
  25. while 1: # Continue till StopIteration gets raised.
  26. yield tuple(l)
  27. for i in range(step):
  28. l.append(it.next())
  29. l.popleft()
  30.  
  31. >>> list(window([1,2,3,4,5],3))
  32. [(1, 2, 3), (2, 3, 4), (3, 4, 5)]
  33.  
  34. l= range(10)
  35. # Print adjacent numbers
  36. for cur, next in window(l + [None] ,2):
  37. if next is None: print "%d is the last number." % cur
  38. else: print "%d is followed by %d" % (cur,next)
  39.  
  40. > easy_install Tempita
  41. > python
  42. >>> from tempita import looper
  43. >>> for loop, i in looper([1, 2, 3]):
  44. ... print loop.previous, loop.item, loop.index, loop.next, loop.first, loop.last, loop.length, loop.odd, loop.even
  45. ...
  46. None 1 0 2 True False 3 True 0
  47. 1 2 1 3 False False 3 False 1
  48. 2 3 2 None False True 3 True 0
  49.  
  50. l=[1,2,3]
  51. for i,item in enumerate(l):
  52. if item==2:
  53. get_previous=l[i-1]
  54. print get_previous
  55.  
  56. >>>1
  57.  
  58. for itemIndex, item in enumerate(l):
  59. if itemIndex>0:
  60. previousItem = l[itemIndex-1]
  61. else:
  62. previousItem = None
  63.  
  64. previous = None
  65. for item in someList:
  66. if item == target: break
  67. previous = item
  68. # previous is the item before the target
  69.  
  70. queue = []
  71. for item in someList:
  72. if item == target: break
  73. queue .append( item )
  74. if len(queue ) > n: queue .pop(0)
  75. if len(queue ) < n: previous = None
  76. previous = previous[0]
  77. # previous is *n* before the target
  78.  
  79. l=[1,2,3]
  80. for index in range(len(l)):
  81. if l[index]==2:
  82. l[index-1]
  83.  
  84. def get_previous(l, item):
  85. idx = l.find(item)
  86. return None if idx == 0 else l[idx-1]
  87.  
  88. for idx in range(len(l)):
  89. item = l[idx]
  90. if item == 2:
  91. l[idx-1]
Add Comment
Please, Sign In to add comment