首页 > 解决方案 > 无法通过在 python 中获取用户的输入从字典中的键中删除值

问题描述

这是代码:

dict1 = {"games" : ["football", "cricket"]}
print(dict1)

input1 = input("enter key : ")
input2 = input("enter value : ")

dict1[input1].pop(input2)

它给出的输出为:

'games': ['football', 'cricket']}
enter key : games
enter value : football
Traceback (most recent call last):
  File "C:/Users/fateo/PycharmProjects/pythonTuts/10Dictionary.py", line 116, in <module>
    dict1[input1].pop(input2)
TypeError: 'str' object cannot be interpreted as an integer
Process finished with exit code 1

它与追加工作正常

dict1[input1].append(input2)

即使我尝试使用 for 循环:

for key, values in dict1.items():
    values.pop(input2)

它给出的错误为:

{'games': ['football', 'cricket']}
enter key : games
enter value : football
Traceback (most recent call last):
  File "C:/Users/fateo/PycharmProjects/pythonTuts/10Dictionary.py", line 113, in <module>
    values.pop(input2)
TypeError: 'str' object cannot be interpreted as an integer

Process finished with exit code 1

当我使用(int)时:

input2 = int(input("enter value : "))

它给出了错误

Traceback (most recent call last):
  File "C:/Users/fateo/PycharmProjects/pythonTuts/10Dictionary.py", line 110, in <module>
    input2 = int(input("enter value : "))
ValueError: invalid literal for int() with base 10: 'football'

我也用过del

del dict1[input2]

它说

TypeError: 'str' object cannot be interpreted as an integer

我不知道为什么将其解释为整数

标签: pythondictionaryuser-input

解决方案


不要改用pop试试这个。

dict1 = {"games" : ["football", "cricket"]} 

print(dict1)

input1 =input("enter key : ")

input2 = input("enter value : ")

for value in dict1.values():
    if (input2) in value:
        value.remove(input2)
print(dict1)

推荐阅读