python元组处理问题

A = ((200, 1.26), ((100, 2.32), (200, 2.32)))
B = ((200, 2.27), (200, 2.05))
C = ((200, 1.35), ((150, 1.8), (200, 1.8)))
D = ((200, 2.27), (200, 1.35), (200, 2.05))
E = (( 200, 2.27), (200, 1.35), ((150, 1.8), (200, 1.8)))

元组中包含元组,数量不确定,层数只有两层,怎么能优雅的把元组中所有的那个小数(位置固定的)取出来?

A = ((200, 1.26), ((100, 2.32), (200, 2.32)))
B = ((200, 2.27), (200, 2.05))
C = ((200, 1.35), ((150, 1.8), (200, 1.8)))
D = ((200, 2.27), (200, 1.35), (200, 2.05))
E = (( 200, 2.27), (200, 1.35), ((150, 1.8), (200, 1.8)))
t = (*A, *B , *C ,*D ,*E)

x = []
def getV(t): 
    for i in t:
        if isinstance(i, tuple):
            getV(i)
        elif isinstance(i, float):
            x.append(i)
getV(t)
print(x)


>>> def getfloat(seq):
    for i in seq:
        if isinstance(i,tuple):
            yield from getfloat(i)
        else:
            if isinstance(i,float):
                yield i

                
>>> for i in getfloat(A):
    print(i)

不算优雅。。。

def extract_iter(t: tuple):
    if isinstance(t[1], float):
        yield t[1]
    else:
        for i in t:
            yield from extract_iter(i)

def extract(t: tuple) -> list:
    tmp_lst = []
    for i in t:
        it = extract_iter(i)
        while True:
            try:
                tmp_lst.append(next(it))
            except StopIteration:
                break
    return tmp_lst