Распечатать значение ключа из выбранного пункта в словаре

Я хотел бы найти оружие1 из словаря, а затем напечатать его пары «ключ» и «значение», чтобы я мог ссылаться на них отдельно. Это работает для всех элементов в словаре, но когда я хочу только один, я не могу заставить его работать.

inventoryitems = {"weapon1": 45, "weapon2": 5}

selecteditem = inventoryitems["weapon1"]
print(selecteditem)

for k, v in selecteditem():
    print(k, v)

Я получаю этот код ошибки:

TypeError: 'int' object is not callable

Я до сих пор понимаю, что он вызывает значение для оружия1 (которое является «int»), но я хочу назвать как ключ, так и значение из найденного элемента в словаре. Любая помощь по этому поводу будет оценена по достоинству!

Всего 3 ответа


inventoryitems = {"weapon1": 45, "weapon2": 5}

selecteditem = inventoryitems["weapon1"]
# by doing this you have assigned the value of key( = weapon1) to the variable selecteditem
# since this value was int now your selecteditem is int

print(selecteditem) # will print 45

# but now you are try to call selecteditem which is an int, and you can't call an int so python will give you an error

'''
for k, v in selecteditem():
    print(k, v)

'''


# instead do this 

selecteditem, selecteditem_value = 'weapon1', inventoryitems["weapon1"]

print('you selected {0} and its power is {1}'.format(selecteditem, selecteditem_value)) #you selected weapon1 and its power is 45


редактировать:

inventoryitems = {"weapon1": 45, "weapon2": 5}

def user_selection( item_selected):
    print('you selected {0} and its power is {1}'.format(item_selected, inventoryitems[item_selected])) #you selected weapon1 and its power is 45


user_selection( 'weapon1') # you selected weapon1 and its power is 45

ваш selecteditem является значением 45, вы затем пытаетесь выполнить цикл через selecteditem но это всего лишь целое число, поэтому ошибка:

for k, v in inventoryitems.items():
    print(k, v)

Поскольку у вас уже есть ключевое weapon1 , вам действительно нужно только значение, которое уже хранится в selectedItem поскольку вы назначили ему inventoryitems["weapon1"] . Здесь нет необходимости в дальнейшем вызове или итерации.


Есть идеи?

10000