Я хочу ранжировать несколько списков в соответствии с их элементами, как часто они появляются в каждом списке. Пример:
список1 = 1,2,3,4
список2 = 4,5,6,7
список3 = 4,1,8,9
результат = 4,1,2,3,4,5,6,7,8 (4 считается три раза, 1 два раза и остальные один раз)
Я пробовал следующее, но мне нужно что-то более интеллектуальное и что-то, что я могу сделать с любым количеством списков.
l = []
l.append([ 1, 2, 3, 4, 5])
l.append([ 1, 9, 3, 4, 5])
l.append([ 1, 10, 8, 4, 5])
l.append([ 1, 12, 13, 7, 5])
l.append([ 1, 14, 13, 13, 6])
x1 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[3])
x2 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[4])
x3 = set(l[0]) & set(l[1]) & set(l[3]) & set(l[4])
x4 = set(l[0]) & set(l[2]) & set(l[3]) & set(l[4])
x5 = set(l[1]) & set(l[2]) & set(l[3]) & set(l[4])
set1 = set(x1) | set(x2) | set(x3) | set(x4) | set(x5)
a1 = list(set(l[0]) & set(l[1]) & set(l[2]) & set(l[3]) & set(l[4]))
a2 = getDifference(list(set1),a1)
print a1
print a2
Теперь вот проблема ... я могу делать это снова и снова с a3, a4 и a5, но тогда это слишком сложно, мне нужна функция для этого ... Но я не знаю, как ... моя математика застряла ;)
РЕШЕНО: Большое спасибо за обсуждение. Мне, как новичку, эта система чем-то нравится: быстро+информативно. Вы мне во всем помогли! Тай