«МОСТ-О» в python

У меня есть список элементов:

x = [1,3,5,7,9] y = [2,4,6,8,0] 

Теперь я хочу выполнить операцию, которая дает мне список, в котором существуют «MOST OF» элементов в третьем списке z:

 z = [2,3,5,7] #primes 

Я хочу сделать это так, чтобы список с «MOST OF» элементов в z возвращался, а не список с любым элементом в z ..

Если это невозможно в списках, я готов работать с кортежами или наборами …

РЕДАКТИРОВАТЬ :

образец:

 mostOf(z) -> x 

поскольку x содержит большинство значений в z

One Solution collect form web for “«МОСТ-О» в python”

работая с наборами, вы можете посмотреть размер пересечения …

  zset = set(z) if len(zset.intersection(x)) > len(zset.intersection(y)): ... 

Если у вас есть итеративный список, чтобы проверить:

 iterable = (x,y) 

Вы можете получить итерацию с самым большим пересечением от 1 :

 def cmp_key(lst): itersect_size = len(zset.intersection(lst)) return intersect_size,-len(lst) list_with_biggest_intersection = max(iterable,key = cmp_key) 

1 Украден из теперь удаленного ответа Джамилака

  • Любопытное поведение списков Python
  • Как создать список исправлений в python?
  • Как удалить элементы списка в цикле for в Python?
  • Проблема с списком Python
  • Добавить несколько переменных в список в Python
  • Распаковка 1-кортежа в списке длины 1
  • Каков самый быстрый способ добавить данные в список без дублирования в python (2.5)
  • Минимальный список в Python с None?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.