# 以数组 a 的从小到大的顺序为基准,对数组b进行重排序,并返回排序结果的索引数
创新互联服务项目包括四方台网站建设、四方台网站制作、四方台网页制作以及四方台网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,四方台网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到四方台省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
import numpy as np
a = np.array([0,1,3,2,6,4,5])
b = np.array([0,1,2,3,4,5,6])
index = np.lexsort((b, a))
# 合成一个字典
ab = dict(zip(a, b))
# 根据字典的键进行排序(也就是第一个列表);也可以根据第二个列表进行排序。
# 具体是升序还是降序,自己挑着来。
ab_order = sorted(ab.items(), key=lambda x: x[0], reverse=
False)
python有自带的sorted函数。
sorted 语法:
sorted(iterable, key=None, reverse=False)
iterable -- 可迭代对象。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
比如,对二维数组按照第一个元素排序:arr = list(sorted(arr, key=lambda x: x[0]))
为什么不用参数?
pairs.sort(key=lo)
是将整个pairs迭代后每一次迭代的值都会传入lo.
为什么是按照输出结果的那种排序方式
lo函数返回的pair[1],也就是在迭代pairs是传入的(1,“one”)中的"one"
所以按照字母顺序排序的,在第一个字母相同时,按照第二个字符排序。
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
写个cmp函数就可以了
def t(x,y):
return cmp(x[1][-7:],y[1][-7:])
s.sort(cmp=t)
print s