好吧,这可能不是最明智的想法,但如果可能,我有点好奇.说我有两个清单:
list1 = [3,2,4,1, 1]
list2 = [three, two, four, one, one2]
Run Code Online (Sandbox Code Playgroud)
如果我运行list1.sort(),它会对它进行排序,[1,1,2,3,4]但有没有办法让list2保持同步(所以我可以说第4项属于'3')?我的问题是我有一个非常复杂的程序,可以正常使用列表,但我需要开始引用一些数据.我知道这对于词典来说是一个完美的情况,但我正在努力避免在我的处理中使用字典,因为我确实需要对键值进行排序(如果我必须使用字典,我知道如何使用它们).
基本上这个程序的本质是,数据以随机顺序出现(如上所述),我需要对其进行排序,处理然后发送结果(顺序无关紧要,但用户需要知道哪个结果属于哪个键).我想先将它放在字典中,然后对列表进行排序,但如果不维护订单,我就无法区分具有相同值的项目(在将结果传达给用户时可能会产生影响).理想情况下,一旦我得到列表,我宁愿想出一种方法来将两个列表排序在一起.这可能吗?
如何按自定义顺序对其进行排序?
输入:
[
{value: "typeA"},
{value: "typeC"},
{value: "typeB"},
{value: "typeC"},
{value: "typeB"},
{value: "typeA"}
]
Run Code Online (Sandbox Code Playgroud)
期待结果:
[
{value: "typeB"},
{value: "typeB"},
{value: "typeC"},
{value: "typeC"},
{value: "typeA"},
{value: "typeA"}
]
my_own_order = ['typeB', 'typeC', 'typeA']
Run Code Online (Sandbox Code Playgroud)
我的python代码现在如下:
result = sorted(input, key=lambda v:v['value'])
Run Code Online (Sandbox Code Playgroud) 我有一个清单a:
a = ['c','d','b','a','e']
Run Code Online (Sandbox Code Playgroud)
和一个列表b:
b = ['a001','b002','c003','d004','e005']
Run Code Online (Sandbox Code Playgroud)
我怎么能得到我的列表c如下:
c = ['c003','d004','b002','a001','e005']
Run Code Online (Sandbox Code Playgroud)
基本上b使用每个元素的一部分,按照 中定义的顺序进行排序a。
非常感谢。