如何将参数列表传递给函数,以便它在python中按顺序(而不是同时在列表的所有元素上)执行它?

如何将参数列表传递给函数,以便它在python中按顺序(而不是同时在列表的所有元素上)执行它?,python,function,Python,Function,这是一个计算txt上的数字的函数。首先,它在目录中导航。为此,我必须使用os.path.join def checkmove(subject): os.chdir(os.path.join(directory, subject, 'func', 'run 1')) print("Check for volumes repaired in " + subject+ ":") try: f = open('art_rep

这是一个计算txt上的数字的函数。首先,它在目录中导航。为此,我必须使用os.path.join

def checkmove(subject):
    os.chdir(os.path.join(directory, subject, 'func', 'run 1'))
    print("Check for volumes repaired in " + subject+ ":")
    try:
        f = open('art_repaired.txt', 'r')
    except:
        print("'art_repaired.txt' not found")
    tot_vols = 0
    for line in f:
        parts = line.split()
        tot_vols += len(parts)       
    print("Volumes repaired in run 1: "+ str(tot_vols))
    del f, tot_vols, parts
问题是我需要将一系列参数(主题)传递给函数,以便按顺序逐个对列表中的每个元素执行函数

当然,如果我尝试,它会给我错误:

TypeError:join()参数必须是str、bytes或os.PathLike对象,而不是“list”


我怎样才能做到这一点呢?

您应该检查一下函数
map
。它将给定函数应用于列表中的所有元素谢谢,这刚刚解决了我的问题。splat运算符帮助您将列表作为参数
def checkmove(*subject):
    for foobar in subject:
        os.chdir(os.path.join(directory, subject, 'func', 'run 1'))
        whatyouwanthere