我正在处理由SciPy生成的集群数据,并且喜欢使用自定义排序顺序来排序数据。基于另一个列表对元组进行排序
比方说,我的数据找出来是这样的:
leafIDs = [4,5,3,1,2]
rowHeaders = ['lorem','ipsum','dolor','sit','amet']
有两个列表,leafIDs
和rowHeaders
之间有一个一一对应。两者的长度始终相同。例如,标题为lorem
的行将具有4
的叶ID,ipsum
将具有5
的ID等等。请注意,这些leafID是而不是我要排序它们的顺序(否则我可以使用tried and tested method)。预期的一到一一对应可以看作如下:
+---------+------------+
| leafIDs | rowHeaders |
+---------+------------+
| 4 | lorem |
| 5 | ipsum |
| 3 | dolor |
| 1 | sit |
| 2 | amet |
+---------+------------+
现在我想通过一个客户订单,这又是这两个数组进行排序,将永远是相同的长度,上述两个名单。你可以看到它作为rowHeaders
加扰序:
rowHeaders_custom = ['amet','lorem','sit','ipsum','dolor']
期望得到的结果,其中leafIDs
将根据rowHeaders_custom
及其与rowHeaders
一个一对一的关系来分类,即:
# Desired outcome
leafIDs_custom = [2,4,1,5,3]
我试过到目前为止:我的做法是目前如下:
- 邮编
leafIDs
和rowHeaders
,即zippedRows = zip(leafIDs, rowHeaders)
。 - 尝试按列表
rowHeaders_custom
对元组列表进行排序。
但是,我在第二步中遇到了障碍。如果对如何执行这种自定义排序排序有任何建议,这将很好。我知道我可能会尝试使用另一个列表来排列元组列表,但是我对sort()
的理解是相当有限的。
@PadraicCunningham - 这个问题是由OP提及作为不足,我很确定它是。 – TigerhawkT3
@ TigerhawkT3,使用完全相同的逻辑 –
它没有考虑额外的所需查找。而且,OP再一次提到它,并说它没有完全解决他的问题,这就是为什么他提出了一个新的问题,就像dupplate样板指示的那样。 – TigerhawkT3