我想对列表进行排序,即:
[['Y', 'K', 'E'],
[3, 1, 2],
[6, 4, 5]]
该列表的第一行应与另一个提供的列表匹配(此列表将始终包含与第一个列表的第一行匹配的字母):
['K', 'E', 'Y']
这样最终的输出是:
[['K', 'E', 'Y'],
[1, 2, 3],
[4, 5, 6]]
答案 0 :(得分:10)
简单的方法是使用Map<String, String> map = new HashMap<String, String>();
for(int i=0;i<a.size();i++)
map.put(a.get(i), b.get(i));
转置它,使用键列表中第一个元素索引的键对其进行排序,然后将其转置回来:
zip()
答案 1 :(得分:3)
使用列表推导的一种非常简单的方法:
>>> L = [['Y', 'K', 'E'], [3, 1, 2], [6, 4, 5]]
>>> indexes = [L[0].index(x) for x in "KEY"]
>>> [[row[i] for i in indexes] for row in L]
[['K', 'E', 'Y'], [1, 2, 3], [4, 5, 6]]