a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
for i in (a + b):
if если данное число и в а и в б in i:
print(i)
ребят как найти те числа которые есть в этих двух множествах
я понимаю что можно писать по разном через их пересечения или филтр
но как это писать через for и if какой когда надо писать чтобы найти такие числа которые есть в обеих множествах
Answers & Comments
Verified answer
set_a = (1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89)
set_b = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
set_ab = set()
for i in set_a:
if i in set_b:
set_ab.add(i)
print(set_ab)
Ответ:
⬇️⬇️⬇️
Объяснение:
Можно найти числа с помощью множеств(тип данных set)
Для начала давайте обе списка превратим в множества.
a = set([1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89])
b = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
c = a & b #в множестве c хранится пересечение множеств а и b то есть то что нам и надо(вместо символа '&' можно использовать метод intersection() и переписать код следующим образом: c = a.intersection(b))
print(c)
Но если вы хотите решить задачу циклом for то могу предположить только это:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
for num in a:
if num in b:
print(num)
Выведенные числа могут повторятся и это можно исправить с использованием множества для хранения результатов, ну а если не хотите их использовать то можно создать список который будет хранить как вы уже поняли числа которые есть в обеих при этом мы должны добавить еще один if который будет проверять есть ли новое число в списке. А так же надо будет выводить этот список после поиска чисел. Выглядеть будет это как то так:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
res = []
for num in a:
if num in b:
if not num in res:
res.append(num)
print(*res)