У меня есть набор из 3 функций вместе со списком имен. Я пытаюсь перебрать эти имена и вызвать функцию для каждого имени. Мой питон выглядит так ...Функция вызова Python для каждого элемента в списке
def testfunc1():
print("This is a test function 1")
#print(name)
def testfunc2():
print("This is a test function 2")
#print(name)
def testfunc3():
print("This is a test function 3")
#print(name)
name_list = ["John", "Joe", "Paul" "George", "Mark", "Craig", "Norman"]
fn_list = [testfunc1(), testfunc2(), testfunc3() ]
for i, name in enumerate(name_list):
[i % len(fn_list)]()
print(name)
И я хотел бы, чтобы это произошло ...
John - Run testfunc1
Joe - Run testfunc2
Paul - Run testfunc3
George - Run testfunc1
Mark - Run testfunc2
Craig - Run testfunc3
Norman - Run testfunc1
У меня есть несколько проблем с моим текущим кодом, первое существо, которое в настоящее время я получаю следующее ошибка ...
TypeError: 'list' object is not callable
Может ли кто-нибудь помочь мне решить?
Вы забыли предоставить 'fn_list' индексировать в – jonrsharpe
Вы сказали' [я% Len (fn_list)] ', но до сих пор, что это просто номер в скобки , Чтобы получить функцию в этой позиции, вам нужно 'fn_list [i% len (fn_list)]'. – zondo
Вам нужно поставить вызов 'print()' над другим вызовом функции. Затем сделайте 'print()' call' print (name.ljust (max (len (n) для n в name_list), end = "") '. В ваших тестовых функциях напечатайте' - Запустите testfunC# 'где' # '- номер функции. – zondo