Изменяемый словарь в Python
Всё никак не могу сделать изменяемый словарь в питоне. Пытаюсь сделать словарь вида "ник_человека : его_айди_ВК", да так, чтобы я мог из своего бота ВК добавлять туда людей, и они сохранялись. Пока что додумался лишь до такого:
def addPlayerToList(idp,nick):
playerDict[nick] = idp
playerDict[idp] = nick
np.save('playersdict.npy', playerDict)
read_dictionary = np.load('playersdict.npy', allow_pickle='TRUE').item()
Но он заменяет прошлого добавленного человека. Как же можно сделать изменяемый словарь в питоне?
Сам словарь:
playerDict = {'айди' : 'ник'}
Ответы (2 шт):
Автор решения: Сергей
→ Ссылка
В принципе, вы делаете правильно. Затираться не должно. Вот упрощённый пример ниже.
Не совсем понятно, зачем вам нужно: playerDict[idp] = nick, но вряд ли дело в этом.
Сравните со своим кодом, найдите в чем различие.
def addPlayerToList(idp,nick):
playerDict[nick] = idp
playerDict = {}
print (playerDict) # печатает: {}
nick = 'Вася'
idp = '1'
addPlayerToList (idp,nick)
print (playerDict) # печатает: {'Вася': '1'}
nick = 'Петя'
idp = '2'
addPlayerToList (idp,nick)
print (playerDict) # печатает: {'Вася': '1', 'Петя': '2'}
Автор решения: szarkan
→ Ссылка
Костыльно, убого, но я как бы не сеньор, поэтому можно
def addPlayerToList(idp,nick):
read_dictionary = np.load('playersdict.npy', allow_pickle='TRUE').item()
# загружает файлик с словарем и записывает его в переменную
read_dictionary[nick] = idp
# добавляет ей знаечение
np.save('playersdict.npy', read_dictionary)
# сохраняет в этот же файлик уже изменённый словарь
read_dictionary = np.load('playersdict.npy', allow_pickle='TRUE').item()
# открывает уже новый чтобы читать