python 列表按指定顺序排序
  X5zJxoD00Cah 2023年11月02日 70 0

1 用一个列表的顺序去排另一个列表

sorted(B, key=A.index)

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

在Python2中,sort函数还有一个cmp参数

  • cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。


https://www.cnblogs.com/clement-jiao/p/9095699.html

2 将一个列表中的元素指向另一个列表的下标

from numpy import *
K = [ chr(k) for k in range(65,67) ] # ['A', 'B']

I = [0,1,2,3]
J = repeat(K, 2).tolist() # ['A', 'A', 'B', 'B']
S = [2,3,0,1]
T = []

'''1'''
for i in I:
    j = J[i]
    s = S[i]
    t = J[s]
    T.append(t)
print(T)

'''2'''
T = [ J[S[i]] for i in I ]
print(T)

'''3'''
def points_to(J, S):
    T = [ J[S[i]] for i in range(len(J)) ]
    return T
T = points_to(J= J, S= S)
print(T)

'''其他方法'''
pass

3 字典排序

I = range(3)
J = np.repeat([ chr(k) for k in range(65,67) ], 2).tolist()
R = np.array([3,2,0,1]) # [最大, 次大, 最小, 次小]
S = R.argsort() # R.从小到大的索引
dic_ = {}
for i in I:
    t = J[S[i]]
    # 如果dic_[t]存在则键值+1 否则键值为0+1
    dic_[t] = dic_.get(t, 0) + 1 # dic_[t] = dic_[t] + 1 if dic_[t] else 0 + 1
print(dic_)

# 字典排序
# https://www.cnblogs.com/beile/p/11276532.html
sorted(dic_, reverse = True)
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  X5zJxoD00Cah   2023年12月11日   26   0   0 知乎Python迭代器
  X5zJxoD00Cah   2023年12月12日   34   0   0 Python.net
X5zJxoD00Cah