比较两个列表中Elixir的相似性

时间:2019-03-27 16:09:42

标签: list elixir elixir-framework

我想比较两个技能列表,以提供一个列表在另一个列表中出现的百分比分数:

user_skills = [
  %{name: "Elixir"}, 
  %{name: "Python"}
]

project_skills = [
  %{name: "Elixir"}, 
  %{name: "Erlang"}, 
  %{name: "Ruby"}
]

user_skills中有多少百分比的project_skills?我们想要的是50%的结果。

1 个答案:

答案 0 :(得分:5)

您可以非常简单,并首先使用Kernel.--/2计算差异:

iex(5)> user_skills -- project_skills
# [%{name: "Python"}]

然后,您可以使用原始列表user_skills的长度和上述操作的长度来获得如下图所示的百分比:

iex(6)> 1 - (length(user_skills -- project_skills) / length(user_skills))
0.5

如果您想进行更复杂的比较和比较,请同时查看myers_difference