如何在特定参数内删除字典中的项目?
Posted
技术标签:
【中文标题】如何在特定参数内删除字典中的项目?【英文标题】:how would I delete item's in a dictionary within specific parameters? 【发布时间】:2022-01-15 05:23:07 【问题描述】:对于我的代码,我希望删除字典中 70 岁以下的所有数字,我不确定如何指定它,我还需要它来删除与该数字相关的名称,或者仅删除该数字或仅显示数字70岁或以上。 以下是我的全部代码:
name = []
number =[]
name_grade =
counter = 0
counter_bool= True
num_loop = True
while counter_bool:
stu = int(input("please enter the number of students: "))
if stu < 2:
print("value is too low, try again")
continue
else:
break
while counter != stu:
name_inp = str(input("Enter your name: "))
while num_loop:
number_inp = int(input("Enter your number: "))
if number_inp < 0 or number_inp > 100:
print("The value is too high or too low, please enter a number between 0 and 100.")
continue
else:
break
name_grade[name_inp] = number_inp
name.append(name_inp)
number.append(number_inp)
counter += 1
print(name_grade)
sorted_numbers = sorted(name_grade.items(), key= lambda x:x[1])
print(sorted_numbers)
if number > 70:
resorted_numbers = number < 70
print(resorted numbers)
我该怎么办?
另外,如果它也不是太麻烦的话,有人可以详细解释一下字典键以及我使用的 lambda 函数是如何工作的吗?我得到了帮助,但我更愿意了解有关如何应用和格式化的小细节,但如果解释起来会很痛苦,请不要担心。
【问题讨论】:
【参考方案1】:您可以遍历字典并过滤小于 70 的值:
resorted_numbers = k:v for k,v in name_grade.items() if v<70
dict.items
方法返回字典的键值元组对列表,因此 lambda 函数告诉sorted
函数按每个元组中的第二个元素排序。
【讨论】:
我假设使用 with using K:V 这通常是后面参数的占位符? 它正在从 name_grade 创建一个新字典。以上是关于如何在特定参数内删除字典中的项目?的主要内容,如果未能解决你的问题,请参考以下文章