您的位置:首页 > 编程语言 > Python开发

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

2017-12-05 19:14 363 查看

排序操作

打算把自己平时经常用到,但是又经常记不准的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 val
Key = a,     value = 8
Key = e,     value = 68
Key = b,     value = 40
Key = c,     value = 19
Key = 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)]


就是这样简单,上面的三种情况几乎可以满足我们绝大多少的排序需求了 ^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 编程