将列表传递给 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 中的函数,就像传递任何其他数据类型一样。
我们进一步理解了将列表作为多个参数传递和解包之间的区别。