Как выполнять проверку в словаре по ключу и изменять значение

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

Задался сделать таблицу лидеров. Код записывает новый ключ, но не сравнивает был ли такой ключ уже введен ранее.
Как сделать чтобы проверка прошла по ключам и при наличии такого ключа у него значение увеличивалось на единицу.
Заранее спасибо.

dict_sample={}
with open('myfile.txt', 'a', encoding='utf-8') as my_file:
    f = open('myfile.txt','a')
    #Добавление нового участника
    winn = input('Введите имя победителя:')
    #Проверка победителя
    f = open('myfile.txt')
    if winn in dict_sample:
        print('есть повтор')
        dict_sample[winn] += 1
        print(winn, dict_sample[winn])
    else:
        print(' повтора нет')
        addon = {winn: 1}
        dict_sample.update(addon)
        my_file.write(str(dict_sample))
        print('Вы ввели', dict_sample)
    f.close()
#Вывод победителей
f = open('myfile.txt')
while True:
    line = f.readline()
    if len(line) == 0:
        break
    print(line, end='')
f.close()

Ответы

▲ 0

Итак я сделал сам. Спасибо ребят за советы.

#Открытие файла и его чтение
f = open('tablleaderboard.txt')
welcome = f.readline()
f.close()

winn=input('Введите имя победителя:' )


#Преобразовываем стринг в словарь нужно чтобы было тире в файле например asd-1 


welcome_dict=dict(((a.strip(), int(b.strip()))) for a,b, in(element.split('-') for element in welcome.split(',')))
print(welcome_dict,'словарь из стринги')

# проверка победителя

if winn in welcome_dict:
    print('есть повтор')
    welcome_dict[winn] += 1
    print('победител',winn,'его рейтинг', welcome_dict[winn])
else:
    print(' повтора нет')
    addon = {winn: 1}
    welcome_dict.update(addon)
    print('Вы ввели', welcome_dict,'словарь с новым значением')

#сортировка 
welcome_dict_sort = dict(sorted(welcome_dict.items(), key=lambda item: item[1]))
print(welcome_dict_sort)

#Преобразует словарь в строку
s = ','.join(f'{k} {v}' for k, v in welcome_dict_sort.items())
print(s,'Стринговое значение с пробелами')
welcome_string = s.replace(" ", "-")
print(welcome_string,'стринговое значение с тире')


#обновление
f = open('tablleaderboard.txt','w')
f.write(str(welcome_string))
f.close()