Получить цифры из строки

Есть следующая строка:

a = [[["0,5"], ["0,6"], ["0,7"]]]

Количество квадратных скобок в начале и в конце строки может быть разным, чаще всего либо две, либо три скобки.

Как можно получить цифры 0,5; 0,6; 0,7 ?

Спасибо!


Ответы (2 шт):

Автор решения: Vladislav Vasilenko
from collections.abc import Iterable

def flatten(items, ignore_types=(str, bytes)):
    """
      str, bytes - являются итерируемыми объектами,
       но их хотим возвращать целыми
    """
    for x in items:
        if isinstance(x, Iterable) and not isinstance(x, ignore_types):
            yield from flatten(x)
        else:
            yield x

items = [1, 2, [3, 4, [5, 6], 7], 8, ('A', {'B', 'C'})]


for x in flatten(items):
    print(x)
→ Ссылка
Автор решения: ПИТОНИСТ версия-3-8

Вот так можно ещё:

sp2=[]
a = [[["0,5"], ["0,6"], ["0,7"]]]
for i in a[0]:
    for x in i: sp2.append(float(x.replace(',', '.')))
print(sp2)

Что выводится:

[0.5, 0.6, 0.7]
→ Ссылка