Нужно из списка вытащить части элементов

Рейтинг: 0Ответов: 1Опубликовано: 25.01.2023

Есть примерно такой список

lst = [<a href="/storage/mediabank/tab-1_VPN-2020.xlsx">Таблица 1. Население, 
учтенное при Всероссийской переписи населения 2020 года</a>,
<a href="/storage/mediabank/tab-2_VPN-2020.xlsx">Таблица 2. Изменение численности
населения России</a>,
<a href="/storage/mediabank/tab-3_VPN-2020.xlsx">Таблица 3. Число муниципальных образований, внутригородских районов, округов города, межселенных территорий и населенных пунктов</a>, 
<a href="/storage/mediabank/tab-3_VPN-2020.xlsx">по субъектам Российской Федерации</a>]

Из него нужно вытащить все ссылка на файлы .xlsx, то есть подобные: /storage/mediabank/tab-1_VPN-2020.xlsx. После чего все эти ссылки добавить в другой список.

Ответы

▲ 1Принят

Например, с помощью регулярного выражения:

import re

lst = ['<a href="/storage/mediabank/tab-1_VPN-2020.xlsx">Таблица 1. Население, учтенное при Всероссийской переписи населения 2020 года</a>',
       '<a href="/storage/mediabank/tab-2_VPN-2020.xlsx">Таблица 2. Изменение численности населения России</a>',
       '<a href="/storage/mediabank/tab-3_VPN-2020.xlsx">Таблица 3. Число муниципальных образований, внутригородских районов, округов города, межселенных территорий и населенных пунктов</a>', 
       '<a href="/storage/mediabank/tab-3_VPN-2020.xlsx">по субъектам Российской Федерации</a>']

rx = re.compile('href="([^"]+)"')
result = [rx.findall(line)[0] for line in lst]
print(result)

Вывод:

['/storage/mediabank/tab-1_VPN-2020.xlsx',
 '/storage/mediabank/tab-2_VPN-2020.xlsx',
 '/storage/mediabank/tab-3_VPN-2020.xlsx',
 '/storage/mediabank/tab-3_VPN-2020.xlsx']

А так то ваш список некорректный, я его привёл к нормальному питоновскому виду.