Три списка

Что нужно сделать

Даны три списка.

array_1 = [1, 5, 10, 20, 40, 80, 100] array_2 = [6, 7, 20, 80, 100] array_3 = [3, 4, 15, 20, 30, 70, 80, 120]

Нужно выполнить две задачи:

  1. найти элементы, которые есть в каждом списке;
  2. найти элементы из первого списка, которых нет во втором и третьем списках.

Каждую задачу нужно выполнить двумя способами:

  1. без использования множеств;
  2. с использованием множеств.

Пример выполнения на других данных: array_1 = [1, 2, 3, 4] array_2 = [2, 4] array_3 = [2, 3]

Вывод:

Задача 1:

  • Решение без множеств: 2
  • Решение с множествами: 2

Задача 2:

  • Решение без множеств: 1
  • Решение с множествами: 1

Что оценивается

  • Результат вычислений корректен.
  • Обе задачи решены двумя предложенными способами. Один из способов — обязательно с использованием множеств и операций над множествами.
  • Формат вывода соответствует примеру.
  • Основной функционал описан в отдельной функции.
  • Переменные и функции имеют значимые имена, не только a, b, c, d.
def interdif(array_1, array_2, array_3):
    interarray = (set(array_1) & set(array_2)) & set(array_3)
    diffarray = set(array_1) - (set(array_2) | set(array_3))

    inter_array = []
    for i in array_3:
        if i in array_2 and i in array_1 and i not in inter_array:
            inter_array.append(i)

    dif_array = []
    for i in array_1:
        if i not in array_3 and i not in array_2:
            dif_array.append(i)

    print('Задача 1 со множествами: ', *interarray)
    print('Задача 2 со множествами: ', *diffarray)
    print('Задача 1 без множеств: ', *inter_array)
    print('Задача 2 без множеств: ', *dif_array)

array_1 = [1, 5, 10, 20, 40, 80, 100]
array_2 = [6, 7, 20, 80, 100]
array_3 = [3, 4, 15, 20, 30, 70, 80, 120]

interdif(array_1, array_2, array_3)