所以,假设我有以下字典:
dic = {'a':3, 'b':2, 'c':1, 'd':1}
Run Code Online (Sandbox Code Playgroud)
所以我想pop(或任何其他方法,删除并返回),'d'因为它是最低的值和最右边的项目(如果2个键具有相同的值),值将始终是整数.
我试过了:
dic.popItem()
Run Code Online (Sandbox Code Playgroud)
但我只是随便拿回一个项目,任何想法?
还尝试过:
temp = min(dic.values)
del dic[temp]
Run Code Online (Sandbox Code Playgroud)
但同样,它不起作用!
给定dict形式的Python :
dict = {'Alice': 2341, 'Beth': 9102, 'Cecil': 3258, ......}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来打印具有最高数值的前x个键?也就是说:
Beth 9102
Cecil 3258
Run Code Online (Sandbox Code Playgroud)
目前这是我的尝试:
max = 0
max_word = ""
for key, value in w.word_counts.iteritems():
if value > max:
if key not in stop_words:
max = value
max_word = key
print max_word
Run Code Online (Sandbox Code Playgroud) 请参阅以下我的代码:
import operator
mydict = {'carl': 4,
'alan': 2,
'bob': 1,
'danny': 3}
for i in sorted(mydict,key=operator.itemgetter(1),reverse=True):
print ("%s: %d" % (i,mydict[i]))
Run Code Online (Sandbox Code Playgroud)
我有输出:
bob: 1
alan: 2
carl: 4
danny: 3
Run Code Online (Sandbox Code Playgroud)
我期待:
bob: 1
alan: 2
danny: 3
carl: 4
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
例如,如果我排序:
{3:4, 4:5, 5:5, 7:2}
Run Code Online (Sandbox Code Playgroud)
我期望:
{7:2, 3:4, 4:5, 5:5}
Run Code Online (Sandbox Code Playgroud)
注意:这不是其他“如何对字典排序”问题的重复,因为它们没有显示如何使用键作为决胜局。
有关的:
所以我在(Python 3.x)中有这个字典:
dict = {
"Gryffindor": gryffcount,
"Ravenclaw": ravencount,
"Hufflepuff": hufflecount,
"Slytherin": slycount
}
Run Code Online (Sandbox Code Playgroud)
gryffcount,ravencount,hufflecount和slycount是int变量.
我想输出中的列表: - 第一个项目应是该值最高的关键 - 第二个应该是其值第二高的关键 - 等等...编辑:但是如果两个计数相等,那么字典中首先提到的那个应该首先出现.
所以如果gryffcount == 0,ravencount == 2,hufflecount == 0,slycount == 4
我应该得到这个清单:
["Slytherin","Ravenclaw","Gryffindor","Hufflepuff"]
Run Code Online (Sandbox Code Playgroud) 我有这个:
{1: 'Foo', 2: 'Bar', 3: 'Chazz', 4: 'Alpha', 6: 'Zorn', 7: 'Doe'}
我想要一个dict中的键列表,按字母顺序按值排序:
[4,2,3,7,1,6]
什么是最简单,最pythonic的方法在2.7?