在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不,不是。