Как передать элементы кортежей функции в качестве аргументов в python?
У меня есть список, состоящий из кортежей, я хочу передать каждый элемент набора в функцию в качестве аргументов:
mylist = [(a, b), (c, d), (e, f)]
myfunc(a, b)
myfunc(c, d)
myfunc(e, f)
Как мне это сделать?
С наилучшими пожеланиями
Ответы
Ответ 1
На самом деле это очень просто сделать в Python, просто перебирайте список и используйте оператор splat (*
), чтобы распаковать кортеж в качестве аргументов для функции:
mylist = [(a, b), (c, d), (e, f)]
for args in mylist:
myfunc(*args)
например:
>>> numbers = [(1, 2), (3, 4), (5, 6)]
>>> for args in numbers:
... print(*args)
...
1 2
3 4
5 6
Ответ 2
Чтобы сделать комментарий @DSM явным:
>>> from itertools import starmap
>>> list(starmap(print, ((1,2), (3,4), (5,6))))
# 'list' is used here to force the generator to run out.
# You could instead just iterate like `for _ in starmap(...): pass`, etc.
1 2
3 4
5 6
[None, None, None] # the actual created list;
# `print` returns `None` after printing.