gpt4 book ai didi

python - 根据具有特殊要求的另一个数组对数组进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:49 27 4
gpt4 key购买 nike

我有一个像这样的数组:

master = ['aa','bb','cc','dd','ee','ff']

我需要按照这个排序:

order = ['c','e','a','b']

所以最终的答案如下:

['cc','ee','aa','bb','dd','ff']

问题是,如果该项目不在订单数组中,那么它会走到最后,我不知道该怎么做。

你会如何处理这个问题?我尝试过:

master.sort(key=lambda x: order.index(x))

但是如果x不在order数组中,例如'dd''ff'

最佳答案

您可以使用maketranstranslate :

master = ['aa','bb','cc','dd','ee','ff']
order = 'ceab'
trantab = str.maketrans(order, 'abcdefghijklmnopqrstuvwxyz'[:len(order)])
master.sort(key=lambda x: x.translate(trantab))

根据您对“fecd”等顺序值的期望,您还可以按如下方式创建转换表:

trantab = str.maketrans(order, ''.join(sorted(order)))

...这将使“a”和“b”排在“f”之前。

关于python - 根据具有特殊要求的另一个数组对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40811058/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com