将列表传递给 Python 中的函数

在 Python 中,向函数发送列表就像传递任何其他形式的数据一样。让我们进一步探讨这个主题。

将列表传递给 Python 中的函数

我们将使用单个参数 flavor 定义一个函数 testing。然后,我们在调用函数时传递一个名为 Cherry 的参数。

这个参数转到参数变量 flavor,然后函数可以使用它。请参见下面的示例。

代码:

def testing(flavor):
    print("You chose:", flavor)

testing("Cherry")

输出:

You chose: Cherry

像其他数据类型一样向 Python 函数传递一个列表

Python 列表就像任何其他 Python 对象一样,我们可以将其作为简单变量传递给函数。在下面的代码示例中,我们有一个带有 hobbies 参数的函数 enjoy

在功能块之外,我们定义了一个列表 hobbies_list。在调用函数 enjoy 时,我们将这个变量 hobbies_list 作为参数传递。

该列表转到参数变量 hobbies,因此,该函数可以使用该列表的值。

代码:

def enjoy(hobbies): #or def enjoy(hobbies=[]):
    for hobby in hobbies:
        print(hobby)

hobbies_list = ['art', 'dance', 'sing']
enjoy(hobbies_list)

输出:

art
dance
sing

看看 enjoy 函数如何获取列表的值,以及其中的 for 循环打印所有列表项。有时,在将列表传递给函数时,你还会看到方括号 [] 分配给参数变量。

Python 中传递和解包列表的区别

在 Python 中,我们可以使用 *args 将可变数量的参数传递给函数。现在,由于列表有多个值,人们倾向于使用 *args 作为列表参数的参数变量,以便处理列表的所有值。

当我们将 *args 定义为参数变量时,我们向函数发出信号以等待可变数量的参数。将列表的元素作为多个参数传递类似于解包列表。

代码:

def subjects(*args):
    for subject in args:
        print("The subject name is ",subject)

names = ['mathematics', 'science', 'history']
subjects(names)

输出:

The subject name is  ['mathematics', 'science', 'history']

如果将此输出与以下代码进行比较,你会更好地看到差异。

代码:

def subjects(args):
    for subject in args:
        print("The subject name is ", subject)

names = ['mathematics', 'science', 'history']
subjects(names)

输出:

The subject name is  mathematics
The subject name is  science
The subject name is  history

请注意输出如何根据 *args 变化。如果使用 *args 将列表传递给 Python 函数,我们可能不会得到预期的结果。

因此,根据需求选择合适的语法很重要。

结论

在本文中,我们学习了如何将列表传递给 Python 中的函数。我们看到了如何将列表传递给 Python 中的函数,就像传递任何其他数据类型一样。

我们进一步理解了将列表作为多个参数传递和解包之间的区别。