Python列表中的下一个最接近的特定项目(向前)并在之间进行检查

时间:2018-04-06 02:31:22

标签: python list loops next nearest-neighbor

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>

由于

1 个答案:

答案 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])]