列表参数在函数内部不起作用

gwydion93

可以说我有4个空变量和2个列表:

v1 = ""
v2 = ""
v3 = ""
v4 = ""

list_1 = ['2', '7', '18', '3']
list_2 = ['75', '8', '0', '13']

现在,我想创建一个函数,该函数使用列表作为参数将值分配给空变量:

def assigner(list_a):
    for item in list_a:
      v1 = list_a[0]
      v2 = list_a[1]
      v3 = list_a[2]
      v4 = list_a[3]

因此,我调用了该函数,然后尝试一个变量来检查是否已根据列表分配了新值。但是我所看到的只是''怎么了

   assigner(list_1)
   print(v2)
   >>> ''
深空

v1, ..., v4在内部定义的assigner函数仅在该函数中起作用,不会影响在该函数外部定义的函数。任何一个像样的IDE都将显示警告,这些局部变量会用相同的名称遮盖全局变量。

没有关系,但是该循环没有任何用处。

在这里使用函数是多余的,您只需解压缩列表即可:

v1, v2, v3, v4 = ['2', '7', '18', '3']

如果您坚持使用一个函数(或者如果您需要一个函数,即具有一些逻辑而不是简单地赋值),请确保使用return该函数中的变量:

# no need to define v1, ..., v4 outside

def assigner(list_a):
    v1 = list_a[0]
    v2 = list_a[1]
    v3 = list_a[2]
    v4 = list_a[3]   
    # some magic logic
    return v1, v2, v3, v4

v1, v2, v3, v4 = assigner(list_1)

有人会建议实际使用global变量,但建议使用9/10倍。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章