cross_update() в Python для поиска общих элементов в n массивах

| | | | | | | | | | | | | | | | | |

Примеры:

Ввод: arr = [[1,2,3,4], [8,7,3,2], [9,2,6,3], [5, 1,2,3]] Вывод: Common Elements = [2,3] 

Мы можем быстро решить эту проблему в python с помощью intersection_update() Установить () структуры данных .

Как работает cross_update ()?

Предположим, что у нас есть два набора A и B, тогда операция A.intersection_update (B) обновляет набор A общими элементами в наборах A и B. Например, A = set ([1, 2,3]) и B = set ([4,2,3]), теперь после принятия A.intersection_update (B) значением множества A будет [2,3]. Синтаксис anySet.intersection_update (итерируемый) .


# Функция поиска общих элементов в n массивах

def commonElements (arr):


# инициализируем результат первым массивом как набор

результат = set (arr [ 0 ])


# теперь итерируемся по списку массивов, начиная c

# второй массив и берем cross_update() из

# каждый массив с результатом. Каждая операция будет

# обновлять значение результата общими значениями ‚Äã‚Äãin

# набор результатов и набор перекрытий

for currSet в arr [ 1 :]:

result.intersection_update (currSet)


return list (результат)


# Код драйвера

if __ name__ = = "__ main__" :

arr = [[ 1 , 2 , 3 , 4 ], [ 8 , 7 , 3 , 2 ], [ 9 , 2 , 6 , 3 ], [ 5 , 1 , 2 , 3 ]]

output = commonElements (arr)

if len (output) > 0 :

print output

else :

print `Общие элементы не найдены`

Вывод:

Common Elements = [2,3] 

Эта статья любезно предоставлена Шашанк Мишра (Гуллу) . Если вы представляете Python.Engineering и хотели бы внести свой вклад, вы также можете написать статью, используя вклад.python.engineering или опубликовав статью. внести свой вклад @ python.engineering. См. мою статью на домашней странице Python.Engineering и помогите другим специалистам.

Если вы обнаружите что-то не так или хотите поделиться дополнительной информацией по теме, обсуждаемой выше, оставляйте комментарии.