# sorted 对于列表的排序操作
list1 = [1, 3, 7, 5, 17, 9]
# 顺序操作
list2 = sorted(list1)
# 逆序操作
list3 = sorted(list1, reverse=True)
print(list1)
print(list2)
print(list3)
# 由此可得,sorted对于列表进行操作时并不会改变原有列表,尽管列表本身是可变数据类型
# 结果为
[1, 3, 7, 5, 17, 9]
[1, 3, 5, 7, 9, 17]
[17, 9, 7, 5, 3, 1]
# sorted对于当列表中的元素是元组时进行的操作操作
list4 = [("a", 1), ("c", 3), ("b", 2), ("d", 4)]
# 顺序操作
# sorted(变量名, key=lambda 元素:元素[元素位置]),其中lambda是为了用于匿名函数,可以免去命名函数的麻烦。
list5 = sorted(list4, key=lambda x:x[1])
# 逆序操作
list6 = sorted(list4, key=lambda x:x[1], reverse=True)
print(list4)
print(list5)
print(list6)
# 结果为
[('a', 1), ('c', 3), ('b', 2), ('d', 4)]
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
[('d', 4), ('c', 3), ('b', 2), ('a', 1)]
# sorted对字典进行排序操作
# 首先使用items方法将字典中的键值对转化为列表,其中列表元素为元组,然后沿用上面的方法排序
dict1 = {'a':1,'b':5, 'c':2, 'd':4}
res1 = sorted(dict1.items(), key=lambda x:x[1])
print(dict1)
print(res1)
#结果为
{'a': 1, 'b': 5, 'c': 2, 'd': 4}
[('a', 1), ('c', 2), ('d', 4), ('b', 5)]
# 对于items方法的理解:当使用一个变量存储items的返回值时,返回的值为一个类,而当使用一个变量存储遍历这个类之后的结果时返回值则是元组。
dict1 = {'a':1,'b':5, 'c':2, 'd':4}
res1 = dict1.items()
print(type(res1))
print(res1)
print('---------')
for a in dict1.items():
print(a)
print(type(a))
# 结果为
<class 'dict_items'>
dict_items([('a', 1), ('b', 5), ('c', 2), ('d', 4)])
---------
('a', 1)
<class 'tuple'>
('b', 5)
<class 'tuple'>
('c', 2)
<class 'tuple'>
('d', 4)
<class 'tuple'>
|