データの抽出方法について質問です。
以下のようになっているデータから、10,20の次に現れる数字を連続しているまとまりごとに抜き出したいのですが、なにかいい方法はないででしょうか。

…
0
LWPOLYLINE
5
1522
330
1F
100
AcDbEntity
8
画層名
100
AcDbPolyline
90
22
70
1
43
0.0
38
290.08
10
122047533.05079
20
5726174.709811977
10
122042929.05079
20
5728126.709811976
10
122040976.4653259
20
5728970.372402169
10
122025572.931653
20
5715437.268879825
10
122028600.8501561
20
5711990.857305059
10
122032549.7739609
 20
5709784.518035731
10
122035907.0023307
20
5707274.252141885
0
LWPOLYLINE
…

自分が作ったコードでは、偶数行と奇数行で分けて10,20が終わると0が来るためそれで区切って作ってみてます

import numpy as np

with open("../a.dxf", "r", encoding='utf-8') as open_file:
    lines = [line.strip() for line in open_file.readlines()]
odd = np.array(lines[0::2], dtype=np.int64)
even = np.array(lines[1::2])
check_box = np.array(max(np.where(odd == 0)))
j = 0
box1 = []
box2 = []
points1 = []
points2 = []
for i in range(max(check_box)):
    if (check_box[j] <= i < check_box[j + 1]) and odd[i] == 10:
        box1.append(float(even[i]))
    elif (check_box[j] <= i < check_box[j + 1]) and odd[i] == 20:
        box2.append(float(even[i]))
    elif i == check_box[j + 1]:
        points1.append([box1])
        points2.append([box2])
        box1 = []
        box2 = []
        j += 1

pythonならfor文を使わないでリスト内包表記で書いたり、リストを使わないほうが早いと聞いていますが自分の力では出来ず上のようになっています。