Python 常用编程知识---排序操作

来源:互联网 发布:利用淘宝赚钱灰色项目 编辑:程序博客网 时间:2024/05/09 09:57

排序操作

打算把自己平时经常用到,但是又经常记不准的python语法整理一下,这是第一篇,希望可以帮到你

Outline

  • 字典排序;(按key,按value排序)
  • list单元素排序(升序,降序)
  • list多元素
import numpy as np
n_num = 5

字典排序;(按key,按value排序)

# 字典排序val = np.random.randint(low=0, high=100,size=n_num, dtype=np.int32)key_list = ['a', 'b', 'c', 'd', 'e']my_dict = {}for i in range(n_num):    my_dict[key_list[i]] = val[i]print('Initial dict val')for key in my_dict.keys():    print('Key = %s, \t value = %d' % (key, my_dict[key]) )
Initial dict valKey = a,     value = 8Key = e,     value = 68Key = b,     value = 40Key = c,     value = 19Key = d,     value = 0
# 字典按 key 排序sort_key = sorted(my_dict.items(), key = lambda x:x[0])print('Sorted by key')for ele in sort_key:    print(ele)
Sorted by key('a', 8)('b', 40)('c', 19)('d', 0)('e', 68)
# 字典按 value 排序sort_val = sorted(my_dict.items(), key = lambda x:x[1])print('Sorted by value')for ele in sort_val:    print(ele)
Sorted by value('d', 0)('a', 8)('c', 19)('b', 40)('e', 68)

list单元素排序(升序,降序)

val = np.random.randint(low=0, high=100,size=n_num, dtype=np.int32)print('Initial value')print(val)
Initial value[63 98 18 57 64]
# 升序 Ascending 默认ascending_sorted = sorted(val)print(ascending_sorted)
[18, 57, 63, 64, 98]
# 降序 Descending descending_sorted = sorted(val, reverse=True)print(descending_sorted)
[98, 64, 63, 57, 18]

list多元素

val1 = np.random.randint(low=0, high=100,size=n_num, dtype=np.int32)val2 = np.random.randint(low=0, high=100,size=n_num, dtype=np.int32)val3 = [(val1[i], val2[i]) for i in range(n_num) ]print(val3)
[(13, 70), (68, 96), (46, 35), (40, 92), (20, 17)]
# 按第一个元素排序sorted_by1 = sorted(val3, key = lambda x:x[0])print(sorted_by1)
[(13, 70), (20, 17), (40, 92), (46, 35), (68, 96)]
# 按第2个元素排序sorted_by2 = sorted(val3, key = lambda x:x[1])print(sorted_by2)
[(20, 17), (46, 35), (13, 70), (40, 92), (68, 96)]

就是这样简单,上面的三种情况几乎可以满足我们绝大多少的排序需求了 ^_^