#python
#python
Вопрос:
У меня есть кортеж с t = (10,20,30). Я хочу вызвать API для каждого члена этого кортежа t. Очевидно, что я могу выполнить цикл и вызвать API — f(«привет», b, 10), f («привет», b, 20), f («привет», b, 20) для каждого элемента в кортеже.
Тем не менее, я ищу наилучший способ сделать это на Python.
Я хочу использовать map здесь или lambda. Как я могу это сделать?
Как мне сопоставить некоторые параметры по умолчанию?
Комментарии:
1. Вы уже упоминали лучший способ — цикл for.
2. Ответ зависит от того, каким вы хотите видеть результат. Если вам нужно, например, единственное значение, то .reduce — правильный вариант. Если вы хотите обрабатывать каждое значение независимо, то .map — лучший вариант. Если вы хотите удалить данные, то . фильтр и так далее. Что вам нужно сделать с кортежем?
3. @PrawnHongs: Один из вопросов, который вы задали, «Как мне сопоставить с некоторыми параметрами по умолчанию». Разве это не будет зависеть от реализации вызываемой вами функции API? Если функция реализована для использования значений по умолчанию для любых аргументов, которые вы не предоставляете, она будет работать. Я подозреваю, что вы на самом деле намеревались задать какой-то другой вопрос (возможно, о аргументах ключевого слова). Пожалуйста, уточните.
Ответ №1:
Одной из альтернатив явному циклу является map
:
tuple(map(f, t))
# or
list(map(f, t))
Это также открывает возможность использовать пулы потоков или процессов для более крупных задач.
Ответ №2:
С циклом for это, например
for a in t:
f("hello", b, a)
Понимание списка дает вам в результате список, который может быть не таким, как вы ожидаете:
[ f("hello", b, a) for a in t ]