给字典按key排序:用sorted

word = raw_input('Enter a word: ')

histogram = dict()

# count each letter
for char in word:
    histogram[char] = histogram.get(char,0) + 1

# print the sorted results
for char in sorted(histogram):
    print '{0} {1}'.format(char,histogram[char])

方法二:

dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[0]) d[0]表示字典的键
print dict

字典(dict)按值排序

python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:

1 下面的是按照value的值从大到小的顺序来排序。

dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict

#output [('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]

下面我们分解下代码

print dic.iteritems() 得到[(键,值)]的列表。

然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第一个元素d[1的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。

  1. 如果按value排序,最后只需要导出key的list:
dic = {'winter': 3, 'hostility': 4, 'distort': 3, 'capsule': 4, 'heartbroken': 5, 'carbon': 3}
dic_sort = sorted(dic.keys(), key=lambda x:dic[x], reverse = False)

#out_put: ['winter', 'distort', 'carbon', 'hostility', 'capsule', 'heartbroken']

results matching ""

    No results matching ""