所以我试着用Python写一个代码作为我的作业,我从用户那里得到一个列表和字典,并从字典中删除列表中的项。
import ast
a= input("Please enter a dictionary: ")
sample_list=ast.literal_eval(a)
n=list((input().split(",")))
def myFunc(sample_list,keys):
y=0
for x in list(sample_list):
if sample_list[x]==n[y]:
del sample_list[x]
y +=1
myFunc(sample_list,n)
print(sample_list)
代码没有给我任何错误,但也从来没有擦除。
我不知道该怎么办。如能得到任何帮助,我将不胜感激你的Python代码有缩进错误。我假设这就是你的意思:
import ast
a = input("Please enter a dictionary: ")
sample_list = ast.literal_eval(a)
n = list((input().split(",")))
def myFunc(sample_list,keys):
y=0
for x in list(sample_list):
if sample_list[x]==n[y]:
del sample_list[x]
y +=1
myFunc(sample_list,n)
print(sample_list)
在Python中,缩进用于表示作用域何时结束,所以它的正确是很重要的。注意for
循环是如何在与y=0
相同的缩进级别开始的,这与问题中不同。
我不清楚你的意思是y
应该做什么。如果您想要删除字典中同时存在于列表中的所有键,您可以这样做:
import ast
a = input("Please enter a dictionary: ")
sample_list = ast.literal_eval(a)
n = list((input().split(",")))
def myFunc(input_dict, keys_to_remove):
# Loop over all the keys the user named
for key in keys_to_remove:
try:
# Try to remove it. If it does not exist, a KeyError
# will happen, which we catch.
del input_dict[key]
except KeyError:
# KeyErrors are fine; just ignore them and move on.
continue
myFunc(sample_list,n)
print(sample_list)