# 对字典dict1按值(value)进行排序(默认由小到大)
# 下列代码中:key=lambda y:y[1] 简单理解为dict1.items中有两个元素:
# y[1]表示按照第二个元素进行排序
# sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数;
# 其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等
# key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序,
# reverse=false时则是顺序,默认时reverse=false。
import operator
dict1 = {"a": 5, "b": 2, "c": 4, "d": 1, "e": 3, "f": 6}
# 方法1:
value1 = sorted(dict1.values())
print(value1)
value2 = sorted(dict1.items(), key=lambda y: y[1])
print(value2)
# 方法2:
value3 = sorted(dict1.items(), key=operator.itemgetter(1))
print(value3)
# 方法3:
list1 = []
list2 = []
for key, value in dict1.items():
list1.append(value)
list2.append(key)
dict1.clear()
for j in range(len(list1)):
for i in range(len(list1)):
if i < len(list1) - 1 and list1[i] > list1[i + 1]:
list1[i], list1[i + 1] = list1[i + 1], list1[i]
list2[i], list2[i + 1] = list2[i + 1], list2[i]
for i in range(len(list1)):
dict1[list2[i]] = list1[i]
print(dict1)
# 方法4:
list1 = list(dict1.values())
list1.sort()
dict2 = {}
for i in list1:
for k in dict1:
if i == dict1[k]:
dict2.setdefault(k, i)
print(dict2)