питон парсинг

Sanchez.

Известный
Автор темы
704
186
Python:
usernames = []
blocks = soup.find_all('div', class_='structItem')
    for k in blocks:
        title = k.find('div', class_='structItem-title')
        if 'Важно' in title.get_text(strip = True):
            pass
        else:
            url = title.find('a').get('href')
            username = k.find_all('a', class_='username')
            date_create = k.find('time', class_='u-dt').get_text(strip = True)
            date_last_answer = k.find('time', class_='structItem-latestDate').get_text(strip = True)
            answers = k.find('dd').get_text(strip = True)
            if int(answers) > 0:
                username = username[1].get_text(strip = True)

await message.answer(usernames)
пытаюсь сделать код, который высчитывает зарплату окружных судей
я проверяю никнейм последнего отвеченного в иске, после чего мне нужно, чтобы ему в массиве прибавлялось значение 300000, если ника в массиве нет, то в массив добавлялся этот ник со значением 300000
я 3 часа пытался сделать, нихуяшеньки не работает
голова накипела оч сильно, помогите пж

Хелп пж
 
Последнее редактирование:
D

deleted-user-494704

Гость
Привет, ты выбрал изначально плохой тип данных для такого вида подсчетов. Рекомендую воспользоваться диктом, а конкретно defaultdict'ом.
Сложного ничего нет, если ключ есть в словаре - добавляем 300.000, если нет - записываем ключ с значением 300.000.
Немного убрал переменные, которые не используются, чтобы не было лишнего кода в примере.
Внимание на строчки 1, 4, 13.

Python:
from collections import defaultdict  # built-in модуль, ничего устанавливать не надо


usernames = defaultdict(int)  # Делаем дефолт дикт с интом, по дефолту будет 0.

for k in soup.find_all('div', class_='structItem'):
    title = k.find('div', class_='structItem-title')
    if 'Важно' in title.get_text(strip=True):
        continue
    username = k.find_all('a', class_='username')
    answers = k.find('dd').get_text(strip = True)
    if int(answers) > 0:
        usernames[username] += 300_000  # _ используется как знак разделения тысяч, для удобства - можно и не использовать

Подробнее про defaultdict – тут.