Python 如何在具有重复元素的排序字典中找到最小值?

Python 如何在具有重复元素的排序字典中找到最小值?,python,dictionary,Python,Dictionary,我有一本字典,以键为项目,以值为价格。我得印最便宜的东西。 如果输入是dict_1={'mobile1':11000,'mobile2':11000,'mobile3':11000} 然后输出-mobile1:11000如果是连接值,则打印最先出现的项目应为输出 如果输入是{'mobile1':10000,'mobile2':9000,'mobile3':13000} 输出为-mobile2:9000 我的代码适用于第二个输入集,但在值相同的第一个输入列表中失败 dict_1={'mobile1

我有一本字典,以键为项目,以值为价格。我得印最便宜的东西。 如果输入是
dict_1={'mobile1':11000,'mobile2':11000,'mobile3':11000}
然后输出-mobile1:11000如果是连接值,则打印最先出现的项目应为输出

如果输入是
{'mobile1':10000,'mobile2':9000,'mobile3':13000}
输出为-
mobile2:9000

我的代码适用于第二个输入集,但在值相同的第一个输入列表中失败

dict_1={'mobile1':11000, 'mobile2':11000, 'mobile3':11000}
mobile=list(dict_1.keys())
price=list(dict_1.values())
for key,val in dict_1.items():
    if dict_1[key]==min(price):
        print('{0}: {1}'.format(key, val))
预期产出:

mobile1: 11000
实际结果:

mobile1: 11000
mobile2: 11000
mobile3: 11000
您可以为此使用
min()
函数

>>> dict_1={'mobile1':11000, 'mobile2':11000, 'mobile3':11000}
>>> min(dict_1, key=dict_1.get)
'mobile1'
>>> 
您可以尝试以下方法:

dict_1 = {'mobile1':11000, 'mobile2':11000, 'mobile3':11000}
ans = sorted(dict_1.keys(), key = lambda x: dict_1[x])[0]
print(str(ans) + ': ' + str(dict_1[ans]))

使用带编号的钥匙通常被认为是不好的做法。如果您有编号的序列,请使用列表。@KlausD:键不是数字。@martineau,但它们是编号的。@KlausD。这可能只是为了举例说明。我认为重要的一点是,键是经过排序的字符串。是的,我接受了。非常感谢