Python:第一个代码的输出为什么是一个列表?我不理解。

13 浏览
0 Comments

Python:第一个代码的输出为什么是一个列表?我不理解。

这个问题已经有答案了

*args和**kwargs是什么意思?【重复】

代码:

def op(*ar):
  for i in ar:
    print(i)
arg=['yel','5',6]
op(arg)

输出: [\'yel\', \'5\', 6]

代码:

def op(ar):
  for i in ar:
    print(i)
arg=['yel','5',6]
op(arg)

输出:

yel
\n5
\n6(This output is understood)

admin 更改状态以发布 2023年5月23日
0
0 Comments

这很简单....您看到 *args 接收所有参数并将其作为元组传递给函数。

所以,当您编写 def op(*args): 时,您实际上传递了一个包含列表 ['yel','5','6'] 的元组。传递的参数实际上看起来像这样: (['yel', '5', '6'])

现在,当您遍历这个元组并且在函数内部时,i 是元组的每个元素,即,在这种情况下,i 是整个列表 ['yel','5','6']。

这就是为什么在打印 ar 时会获得列表的原因。

相反,在第二种情况下,参数作为列表传递,因此当您遍历它时,可以访问每个元素。

0