gpt4 book ai didi

python - 根据另一个数组重新排序

转载 作者:行者123 更新时间:2023-12-01 01:56:16 25 4
gpt4 key购买 nike

我有一个字典数组,其中有键 nameval。我有另一个数组数组,其中始终有两个值:src_XXdst_XX,其中XX是整数。

我想使用名称及其值在另一个数组(数组)中的位置对第一个字典数组进行排序

s = [{'name': 'src_0', 'val': 0},
{'name': 'src_1', 'val': 1},
{'name': 'src_2', 'val': 2},
{'name': 'src_3', 'val': 3},
{'name': 'src_4', 'val': 4},
{'name': 'src_5', 'val': 5},]
u= [['src_1', 'dst_2'],
['src_0', 'dst_0'],
['dst_1', 'src_2'],
['dst_3', 'src_3'],
['src_4', 'dst_4'],
['src_5', 'dst_5'],]

最终结果应该是:

s = [{'name': 'src_1', 'val': 1},
{'name': 'src_0', 'val': 0},
{'name': 'src_2', 'val': 2},
{'name': 'src_3', 'val': 3},
{'name': 'src_4', 'val': 4},
{'name': 'src_5', 'val': 5},]

我已经尝试了很多东西,其中一种可以工作,但它非常丑陋,没有优化,也不像 Python。

最佳答案

首先,我将使用以下方法创建一个更简单的引用数组:

reference = [sorted(x)[1] for x in u]

>>> ['src_1', 'src_0', 'src_2', 'src_3', 'src_4', 'src_5']

然后像这样排序s:

s.sort(key=lambda x: reference.index(x['name']))

>>> [{'name': 'src_1', 'val': 1},
{'name': 'src_0', 'val': 0},
{'name': 'src_2', 'val': 2},
{'name': 'src_3', 'val': 3},
{'name': 'src_4', 'val': 4},
{'name': 'src_5', 'val': 5}]

关于python - 根据另一个数组重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50152911/

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