Напечатать строки в порядке убывания

Есть список строк. В каждой строке есть числа, нужно отображать строки в зависимости от количества цифр в числе. От строки с наибольшим количеством цифр до строки с наименьшим.

array = ["My name 1 - Andrew", "My 2222 surname - Ivanov", "I am 25 "]
string = ", ".join(array)
string = string.split()
for i in string:
    if i.isdigit():
        pass

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

Автор решения: splash58

может, воспользоваться регулярками? тут выбирается самое длинное число, если их несколько

import re 

a = [x[1] for x in sorted(zip(map(lambda x: max(map(len, re.findall(r'\d+', x))), array), array), reverse=True)]
print(a)

# ['My 2222 surname - Ivanov', 'I am 25 ', 'My name 1 - Andrew']
→ Ссылка