A=['a',1,2,3,'b',4,5,'a',6,7,'b']
如何在当前值和它之间找到下一个最接近的特定值的索引和元素?
我想迭代列表A,并且能够找到下一个最接近的给定值'索引和中间的元素。比方说,例如,如果我在第一个' a',那么它将返回一个索引(0)的第一个' b' b的索引(4)和中间的元素(1,2,3)。如果我处于第二个a
的点,那么它将返回一个索引(7)第一个b的索引(10)和中间的元素(67)。 / p>
由于
答案 0 :(得分:0)
In [15]: result = []
...: start = 'a'
...: stop = 'b'
...: a = A
...: accum = 0
...: while True:
...: try:
...: i1 = a.index(start)
...: i2 = a.index(stop)
...: result.append((i1+accum, i2+accum, [a[i] for i in range(i1 + 1, i2)]))
...: except ValueError:
...: break
...: accum += i2 + 1
...: a = a[accum:]
...:
...: result
...:
Out[15]: [(0, 4, [1, 2, 3]), (7, 10, [6, 7])]