Как добавить пользовательский ввод в первый (или конкретный) ключ словаря? - PullRequest
0 голосов
/ 25 сентября 2018

Я только начал изучать Python 3, и это мои первые несколько кодов, которые я начал писать.Это попросит пользователя добавить словарь:

add_d = input("Add Dictionary: ")

Затем он попросит пользователя добавить значения и добавить их к первому (или определенному) ключу словаря

add_item = str(input("Add value: ")
for x in add_d():
     add_d.keys()[x] = add_item 
* 1006.* Моя проблема в том, что появляется ошибка «объект dict не вызывается».Как мне решить это?

Ответы [ 4 ]

0 голосов
/ 26 сентября 2018

есть несколько проблем в вашем примере

  1. input("Add Dictionary: ") вернет str никогда не будет диктовать

  2. add_item = str(input("Add value: ")) не нужноstr(), поскольку это строка

  3. Поскольку add_d является строкой, то он не может использовать add_d.keys(). (Это может сделать только dict)

Я догадался, что вы хотите:

d = {}
while 1:
    add_d = input("Add key: ")
    if not add_d:
        break
    add_item = input("Add value: ")
    d[add_d] = add_item 
print(d)
0 голосов
/ 25 сентября 2018

выглядит как проблема в незамкнутых скобках:

add_item = str(input("Add value: "))
for x in add_d():
     add_d.keys()[x] = add_item 
0 голосов
/ 25 сентября 2018

Вы вызываете переменную add_d как функцию, которой нет, поэтому она отображает объект, который нельзя вызвать.Вы можете использовать метод fromkeys для создания словаря с введенными ключами и значениями.

add_d = input("Add Dictionary: ")
add_item = input("Add value: ")
add_d = dict.fromkeys(add_d, add_item)
print(add_d)
output: {key: value}
0 голосов
/ 25 сентября 2018

Есть несколько вещей, которые не совсем работают с этим.Сообщение об ошибке относится к for x in add_d() (вы должны удалить (), потому что это не вызов функции).Но вы должны помнить, что словарь - это серия пар key:value, поэтому вы действительно хотите, чтобы пользователь указывал ключ и значение, а не словарь и значение.Это было бы больше похоже на это

add_d = dict()
dict_key = input("Specify key: ")
dict_val = input("Specify value: ")
add_d[dict_key] = dict_value
...