无法通过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

我不明白为什么它把它解释为整数


缥缈止盈
浏览 120回答 3
3回答

Smart猫小萌

不要使用pop尝试这个代替。dict1 = {"games" : ["football", "cricket"]}&nbsp;print(dict1)input1 =input("enter key : ")input2 = input("enter value : ")for value in dict1.values():&nbsp; &nbsp; if (input2) in value:&nbsp; &nbsp; &nbsp; &nbsp; value.remove(input2)print(dict1)

猛跑小猪

对于 pop(),您应该给出索引,而不是键。即使 del 语句也应该与索引一起给出。使用remove()代替

慕莱坞森

您不能使用pop带有字符串值作为参数的 on 列表。需要pop要删除的元素的索引。因为你的字典只有一个键,所以最简单的方法就是字典理解:{k: [x for x in v if x != input2] for k, v in dict1.items() if k == input1}..您的示例中的内容如下所示:dict1 = {"games" : ["football", "cricket"]}print(dict1)input1 = input("enter key : ")input2 = input("enter value : ")print({k: [x for x in v if x != input2] for k, v in dict1.items() if k == input1})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python