#python #python-3.x #dictionary #key-value
Вопрос:
mydict = {'5': 0, '2': 0, '1': 0, '12': 0}
number = input()
for i in range(0,4):
if number == mydict[i]:
mydict.keys[i] =1
print(mydict)
Я хочу быть похожим на
- 5 —> {‘5’: 1, ‘2’: 0, ‘1’: 0, ’12’: 0} или
- 2 —> {‘5’: 0, ‘2’: 1, ‘1’: 0, ’12’: 0}
Комментарии:
1. Ни одно из значений, присвоенных i, не является ключом в mydict. Если бы это было так, то следующая строка все равно не имеет смысла.
Ответ №1:
Словари находятся в группе hashmap, поэтому для поиска элемента нет необходимости повторять все элементы.
просто попробуйте:
mydict = {'5': 0, '2': 0, '1': 0, '12': 0}
inp = input()
mydict[inp] = mydict.get(inp, 0) 1
Он также позволяет вводить числа, которых в настоящее время нет в словаре, с начальным значением 0, если это тот случай, который вы ищете. В противном случае просто получите ключ и увеличьте его значение:
mydict[inp] = 1
Ответ №2:
Что плохого в том, чтобы просто не делать цикл:
mydict[number] = 1