Сравните два списка на сходство в эликсире - PullRequest
3 голосов
/ 27 марта 2019

У меня есть два списка умений, которые я хотел бы сравнить, чтобы получить процентную долю того, сколько из одного списка появляется в другом:

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

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

Какой процент user_skills появляется в project_skills? То, что мы хотели бы здесь, является результатом 50%.

1 Ответ

5 голосов
/ 27 марта 2019

Вы можете быть очень простым и использовать Ядро .-- / 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 .

...