如何根据elixir中提供的标准对给定列表进行排序

如何根据elixir中提供的标准对给定列表进行排序,elixir,Elixir,我想在对象列表下面排序,以便返回列表按照提供的键列表的顺序包含对象。例如: Given object list: my_list==> [{"ipnetworkaddress", [], "33.33.123.148"}, {"httpbrowsertype", [], "Mozilla"}, {"hostname", [], "example.com"}] Give

我想在对象列表下面排序,以便返回列表按照提供的键列表的顺序包含对象。例如:

Given object list: 
my_list==> [{"ipnetworkaddress", [], "33.33.123.148"}, {"httpbrowsertype", [], "Mozilla"}, {"hostname", [], "example.com"}]

Given order list having object first attribute for criteria: 
ordered_keys ===> ["hostname", "httpbrowsertype", "ipnetworkaddress"]
    
Desired result ==> [{"hostname", [], "example.com"}, {"httpbrowsertype", [], "Mozilla"}, {"ipnetworkaddress", [], "33.33.123.148"} ]
他是你的朋友

Enum.sort\u by(我的列表)和Enum.find\u索引(键,fn e->
e==元素(&1,0)

结束),&对于短列表,Aleksei的答案很好,但对于有一个有序键列表的特定情况,我会使用按键对对象进行分组,然后在有序键上,从组中查找相关对象。对于较大的列表,这意味着对每个项进行O(1)映射查找,而不是O(n)列表搜索

对象=[
{“ipnetworkaddress”、[]、“33.33.123.148”},
{“httpbrowsertype”、[]、“Mozilla”},
{“hostname”,[],“example.com”}
]
有序_键=[“主机名”、“httpbrowsertype”、“ipnetworkaddress”]
分组对象=枚举。分组对象(对象和元素(&1,0))
枚举平面映射(有序键和分组对象[&1])

The
&是的,我知道,我只是想展示最通用的方法(例如,在一种情况下,他们希望对列表进行降序排序。)