Dictionary 获取字典中第二和第三高的值

Dictionary 获取字典中第二和第三高的值,dictionary,Dictionary,第二个是带4次的“b”。第三个关节是“c”和“d”,共3次。随着字典随着时间的推移而变化,比如说,“f”加上一个值3,那么第三个将是“c”、“d”和“f”,加3次。只需创建一个元组值的gencomp,对其进行键控和排序。打印项目 dict = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1} 结果: d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1} x = sorted(((v,k) for k,v in d.items())) pri

第二个是带4次的“b”。第三个关节是“c”和“d”,共3次。随着字典随着时间的推移而变化,比如说,“f”加上一个值3,那么第三个将是“c”、“d”和“f”,加3次。

只需创建一个元组值的gencomp,对其进行键控和排序。打印项目

dict = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}
结果:

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

x = sorted(((v,k) for k,v in d.items()))
print(x[-2][1])
print(x[-3][1])
x = sorted(d.items(),key=(lambda i: i[1]))
print(x[-2][0])
print(x[-3][0])
import collections

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

dd = collections.defaultdict(list)

for k,v in d.items():
    dd[v].append(k)

x = sorted(dd.items())

print(x[-2])
print(x[-3])
(如果dict没有至少3项,则将失败)

或者直接使用
参数(避免数据重新排序)

结果:

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

x = sorted(((v,k) for k,v in d.items()))
print(x[-2][1])
print(x[-3][1])
x = sorted(d.items(),key=(lambda i: i[1]))
print(x[-2][0])
print(x[-3][0])
import collections

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

dd = collections.defaultdict(list)

for k,v in d.items():
    dd[v].append(k)

x = sorted(dd.items())

print(x[-2])
print(x[-3])
顺便说一句,避免使用
dict
作为变量

编辑:由于存在多个相同的值,因此可能需要获得2个次优值和相关字母。你必须用不同的方式来做。我将使用key作为值创建一个默认列表,并将其存储在列表中,然后按照上述代码中的方式对其进行排序:

b
d
结果:

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

x = sorted(((v,k) for k,v in d.items()))
print(x[-2][1])
print(x[-3][1])
x = sorted(d.items(),key=(lambda i: i[1]))
print(x[-2][0])
print(x[-3][0])
import collections

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

dd = collections.defaultdict(list)

for k,v in d.items():
    dd[v].append(k)

x = sorted(dd.items())

print(x[-2])
print(x[-3])

只需创建一个元组值的gencomp,对其进行键控和排序。打印项目

dict = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}
结果:

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

x = sorted(((v,k) for k,v in d.items()))
print(x[-2][1])
print(x[-3][1])
x = sorted(d.items(),key=(lambda i: i[1]))
print(x[-2][0])
print(x[-3][0])
import collections

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

dd = collections.defaultdict(list)

for k,v in d.items():
    dd[v].append(k)

x = sorted(dd.items())

print(x[-2])
print(x[-3])
(如果dict没有至少3项,则将失败)

或者直接使用
参数(避免数据重新排序)

结果:

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

x = sorted(((v,k) for k,v in d.items()))
print(x[-2][1])
print(x[-3][1])
x = sorted(d.items(),key=(lambda i: i[1]))
print(x[-2][0])
print(x[-3][0])
import collections

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

dd = collections.defaultdict(list)

for k,v in d.items():
    dd[v].append(k)

x = sorted(dd.items())

print(x[-2])
print(x[-3])
顺便说一句,避免使用
dict
作为变量

编辑:由于存在多个相同的值,因此可能需要获得2个次优值和相关字母。你必须用不同的方式来做。我将使用key作为值创建一个默认列表,并将其存储在列表中,然后按照上述代码中的方式对其进行排序:

b
d
结果:

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

x = sorted(((v,k) for k,v in d.items()))
print(x[-2][1])
print(x[-3][1])
x = sorted(d.items(),key=(lambda i: i[1]))
print(x[-2][0])
print(x[-3][0])
import collections

d = {'a':5 , 'b':4, 'c':3, 'd':3, 'e':1}

dd = collections.defaultdict(list)

for k,v in d.items():
    dd[v].append(k)

x = sorted(dd.items())

print(x[-2])
print(x[-3])

所以x的输出是[('a',5,'b',4)]或者类似的东西。通过使用[-2][1],您将获取最后一个索引,[1]是值?我还需要获取与该值对应的键,并且如果多个键具有相同的匹配项,则也必须打印它们。我添加了一些您想要的内容。技术稍有不同,谢谢。你真棒!如果字典是:
{'a':1000,'b':3000,'c':100,'d':3000}
,这样会返回b作为第二大值。因此x的输出是[('a',5',b',4)]或类似的东西。通过使用[-2][1],您将获取最后一个索引,[1]是值?我还需要获取与该值对应的键,并且如果多个键具有相同的匹配项,则也必须打印它们。我添加了一些您想要的内容。技术稍有不同,谢谢。你真棒!如果字典为:
{'a':1000,'b':3000,'c':100,'d':3000}
,则此方法返回b作为第二大值。如果使用
集合。计数器
,则会得到
最常用的
方法…如果使用
集合。计数器
则会得到
最常用的
方法。。。