如何在特定参数内删除字典中的项目?

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 创建一个新字典。

以上是关于如何在特定参数内删除字典中的项目?的主要内容,如果未能解决你的问题,请参考以下文章

Quickblox:如何在特定时间段内删除用户签到

如何根据ios中的特定键从数组中获取字典

如何从字典中删除特定元素? [复制]

Xamarin:如何删除网格中特定行中的项目

如何使用特定项目删除按钮删除列表视图中的项目?

如何根据特定时间删除 Firebase 数据库中的项目