TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.91K subscribers
Post #3576 1.42K
Функция foo() ищет пересечение произвольного числа последовательностей (одной и более), используя форму сопоставления с переменным количеством аргументов *аргументы для сбора всех переданных аргументов. Поскольку аргументы поступают в виде кортежа, мы можем обрабатывать произвольное число аргументов с целью сбора элементов, имеющихся во всех операндах:

def foo(*args):
res = []
for x in args[0]: # Просмотр последовательности
if x in res: continue # Пропуск дубликатов
for other in args[1:]: # Для всех остальных аргументов
if x not in other: break # Элемент находится во всех последовательностях?
else: # Нет: выйти из цикла
res.append(x) # Да: добавить в конец
return res

lst = (1, 3, 4, 3, 5)
print(foo(lst)) # [5]


В данном случае все сводится к блоку else (выходу из цикла) и добавлению последнего элемента в res.

Если подавать функции, например, два кортежа, результат будет другим:

lst = ((1, 3, 4), (3, 4, 5))
print(foo(lst)) # [(3, 4, 5)]
More from @quiz_python
  1. Oct 2, 2026Развёрнутое пояснение: 1. Вызов orders() создаёт объект генератора, но его тело пока не вы…
  2. Oct 2, 2026Post #4908
  3. Oct 1, 2026Развёрнутое пояснение: 1. Кортеж regions задаёт два ключа: eu и us. 2. dict.fromkeys(regio…
  4. Oct 1, 2026Post #4906
  5. Sep 30, 2026Развёрнутое пояснение: 1. defaults содержит исходные значения timeout и retries, а env изн…
  6. Sep 30, 2026Post #4904
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →