0

只留下值最小的键,我不能使用 min()函数。

移动 OP 从他的评论中尝试的代码:-

for i in key: 
    if dictionary[i]<dictionary[key]: 
        dictionary.pop(key) 
    elif dictionary[i]==dictionary[key]: 
        print (dictionary[i])

以及来自其他评论的代码:

dictionary={'A': 3, 'B': -2, 'C': -1, 'D': -3} 
for key in dictionary: 
    print ("Keys and values>", key,end= '') 
    print (dictionary[key]) 
    print (dictionary) 
    for i in key: 
        if dictionary[i]<dictionary[key]: 
            dictionary.pop(key) 
        elif dictionary[i]==dictionary[key]: 
            print ("The minimum is",dictionary[i])
4

2 回答 2

0

您可以使用 dict.items() 来获取最小功能。

my_dic = {...}
print min(my_dic.item(), key = lambda x: x[1])[0]
于 2012-11-22T08:55:45.107 回答
0

你可以试试这个。它使用any函数将每个键的值与除其自身之外的所有其他值进行比较。如果any找到小于该值的值,则key弹出 。

>>> my_dict = {1: 2, 2: 3, 3: 4}
>>> for key, value in my_dict.items():
        if any(value > value1 for key1, value1 in my_dict.items() if key1 != key):
            my_dict.pop(key)


3
4
>>> my_dict
{1: 2}

any如果传递给它True的至少一个值是 ,则函数返回。listTrue

例如: -

any([0, 0, False, True])   # Will print True
any([0, 0, False, False])  # Will print False

更新 : -

如果您不想使用any函数,可以将any函数的 for 循环移到外面,并仅在该循环中进行测试:-

my_dict = {1: 2, 2: 3, 3: 4}

for key, value in my_dict.items():
    for key1, value1 in my_dict.items():

        if key1 != key and value > value1:
            my_dict.pop(key)

print my_dict
于 2012-11-22T07:52:29.477 回答