Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中从字典中删除元素_Python - Fatal编程技术网

在python中从字典中删除元素

在python中从字典中删除元素,python,Python,我试图删除字典中具有最小值的元素,以尝试将其余元素按升序排列 dict={} for line in file: line = line.split() dict.update({line[0]:line[1]}) while dict.items(): min = float(100) for x in dict: print(dict[x]) g=float(dict[x]) if (g<min):

我试图删除字典中具有最小值的元素,以尝试将其余元素按升序排列

dict={}
for line in file:
    line = line.split()
    dict.update({line[0]:line[1]})

while dict.items():
    min = float(100)
    for x in dict:
        print(dict[x])
        g=float(dict[x])
        if (g<min):
            min=float(dict[x])
    print(min)

for name, avg in dict.items():
    if float(avg) == min:
        print(name)

fileout.write(name+ '\t' + str(avg) + '\n')
del dict[name]
print(dict)
dict={}
对于文件中的行:
line=line.split()
dict.update({line[0]:line[1]})
而dict.items():
最小值=浮动(100)
对于dict中的x:
打印(dict[x])
g=浮动(dict[x])

如果(g从上一个字典构建一个新的字典会更容易。通过使用
排序的
dict.items()
并将
键作为
lambda i:i[1]
传递,我们可以构建一个排序的字典。最后,我们希望得到第一个值的所有条,因此我们需要对
排序的结果进行切片

d = {'a': 3, 'b': 1, 'c': 2}
new_d = dict(sorted(d.items(), key=lambda i: i[1])[1:])
print(new_d)
# {'c': 2, 'a': 3}
如果您必须对第一个对象进行变异,那么我们可以使用
dict.update
清除并重建它

d = {'a': 3, 'b': 1, 'c': 2}
new_d = sorted(d.items(), key=lambda i: i[1])[1:]
d.clear()
d.update(new_d)
print(d)
# {'c': 2, 'a': 3}

考虑使用另一个名称为代码> min <代码>变量,<代码> min <代码>是Python中的一个保留字,引用函数<代码> min()
要计算
最小值
顺便说一句,不要使用
dict
之类的变量名。这是一个内置的,可能会导致代码中出现问题。循环后,
name
是dict中最后一个项的键,而不是具有最小值的项。您需要另一个变量来保存它。您在dict中找到了最小项,但您所做的只是打印它;您没有保存
name
的特定值供以后使用。您不需要循环来查找最小值:
min\u value=min(d.values())
留下一个关于排序字典的选项,供OP参考,并附上此答案。投票结果。我应该将排序后的字典保存在新文件中,那么删除的元素在哪里?@HanofyAlnaemi您可以使用
打印(新[0])获得该选项
在第二个版本中。它按键为我排序,如何按值排序?@HanofyAlnaemi不,不是。